﻿<div class="head" style="margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <p data-fill-with="logo" style="margin-top: 1em; margin-bottom: 1em;">
        <a class="logo" href="http://www.w3.org/" style="color: inherit; text-decoration: underline; padding: 0px; border-style: none; background: transparent;">
        <img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" style="border-style: none; color: inherit;" width="72" /></a></p>
    <h1 id="title" class="p-name no-ref" style="page-break-after: avoid; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 27px; line-height: normal; font-family: sans-serif; margin-top: 2em; clear: both; background: white;">CSS Syntax Module Level 3</h1>
    <h2 id="subtitle" class="no-num no-toc no-ref heading settled heading" style="page-break-after: avoid; margin-top: 0px; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; background: white;"><span class="content">W3C Candidate Recommendation,<span class="Apple-converted-space">&nbsp;</span><span class="dt-updated"><span class="value-title" title="20140220">20 February 2014</span></span></span></h2>
    <div data-fill-with="spec-metadata">
        <dl>
            <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">This version:</dt>
            <dd style="margin: 0px 0px 0px 2em;"><a class="u-url" href="http://www.w3.org/TR/2014/CR-css-syntax-3-20140220/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2014/CR-css-syntax-3-20140220/</a></dd>
            <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">Latest version:</dt>
            <dd style="margin: 0px 0px 0px 2em;"><a href="http://www.w3.org/TR/css-syntax-3/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/css-syntax-3/</a></dd>
            <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">Editor’s Draft:</dt>
            <dd style="margin: 0px 0px 0px 2em;"><a href="http://dev.w3.org/csswg/css-syntax/" style="color: inherit; text-decoration: underline; background: transparent;">http://dev.w3.org/csswg/css-syntax/</a></dd>
            <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">Previous Version:</dt>
            <dd style="margin: 0px 0px 0px 2em;"><a href="http://www.w3.org/TR/2013/WD-css-syntax-3-20131105/" rel="previous" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2013/WD-css-syntax-3-20131105/</a></dd>
            <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">Feedback:</dt>
            <dd style="margin: 0px 0px 0px 2em;"><a href="mailto:www-style@w3.org?subject=%5Bcss-syntax%5D%20feedback" style="color: inherit; text-decoration: underline; background: transparent;">www-style@w3.org</a><span class="Apple-converted-space">&nbsp;</span>with subject line “<kbd>[css-syntax]<span class="Apple-converted-space">&nbsp;</span><var>… message topic …</var></kbd>”(<a href="http://lists.w3.org/Archives/Public/www-style/" rel="discussion" style="color: inherit; text-decoration: underline; background: transparent;">archives</a>)</dd>
            <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">Test Suite:</dt>
            <dd style="margin: 0px 0px 0px 2em;">None Yet</dd>
            <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">Editors:</dt>
            <dd class="p-author h-card vcard" style="margin: 0px 0px 0px 2em;"><a class="p-name fn u-url url" href="http://xanthir.com/contact/" style="color: inherit; text-decoration: underline; background: transparent;">Tab Atkins Jr.</a><span class="Apple-converted-space">&nbsp;</span>(<span class="p-org org">Google</span>)</dd>
            <dd class="p-author h-card vcard" style="margin: 0px 0px 0px 2em;"><a class="p-name fn u-url url" href="http://exyr.org/about/" style="color: inherit; text-decoration: underline; background: transparent;">Simon Sapin</a><span class="Apple-converted-space">&nbsp;</span>(<span class="p-org org">Mozilla</span>)</dd>
        </dl>
    </div>
    <div data-fill-with="warning">
    </div>
    <p class="copyright" data-fill-with="copyright" style="margin-top: 1em; margin-bottom: 1em; font-size: small;">
        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright" style="color: inherit; text-decoration: underline; background: transparent;">Copyright</a><span class="Apple-converted-space">&nbsp;</span>© 2014<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/" style="color: inherit; text-decoration: underline; background: transparent;"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup style="vertical-align: super; font-size: 12px;">®</sup><span class="Apple-converted-space">&nbsp;</span>(<a href="http://www.csail.mit.edu/" style="color: inherit; text-decoration: underline; background: transparent;"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>,<span class="Apple-converted-space">&nbsp;</span><a href="http://www.ercim.eu/" style="color: inherit; text-decoration: underline; background: transparent;"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,<span class="Apple-converted-space">&nbsp;</span><a href="http://www.keio.ac.jp/" style="color: inherit; text-decoration: underline; background: transparent;">Keio</a>,<span class="Apple-converted-space">&nbsp;</span><a href="http://ev.buaa.edu.cn/" style="color: inherit; text-decoration: underline; background: transparent;">Beihang</a>), 
        All Rights Reserved. W3C<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer" style="color: inherit; text-decoration: underline; background: transparent;">liability</a>,<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks" style="color: inherit; text-decoration: underline; background: transparent;">trademark</a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/Consortium/Legal/copyright-documents" style="color: inherit; text-decoration: underline; background: transparent;">document use</a><span class="Apple-converted-space">&nbsp;</span>rules apply.</p>
    <hr title="Separator for header" />
</div>
<h2 id="abstract" class="no-num no-toc no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="content">Abstract</span></h2>
<p class="p-summary" data-fill-with="abstract" style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This module describes, in general terms, the basic structure and syntax of CSS stylesheets. It defines, in detail, the syntax and parsing of CSS - how to turn a stream of bytes into a meaningful stylesheet.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/CSS/" style="color: inherit; text-decoration: underline; background: transparent;">CSS</a><span class="Apple-converted-space">&nbsp;</span>is a language for describing the rendering of structured documents (such as HTML and XML) on screen, on paper, in speech, etc.</p>
<h2 id="status" class="no-num no-toc no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="content">Status of this document</span></h2>
<div data-fill-with="status" style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <p style="margin-top: 1em; margin-bottom: 1em;">
        <em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/" style="color: inherit; text-decoration: underline; background: transparent;">W3C technical reports index at http://www.w3.org/TR/.</a></em></p>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        This document was produced by the<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/Style/CSS/members" style="color: inherit; text-decoration: underline; background: transparent;">CSS Working Group</a><span class="Apple-converted-space">&nbsp;</span>as a<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/Consortium/Process/tr#RecsCR" style="color: inherit; text-decoration: underline; background: transparent;">Candidate Recommendation.</a></p>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        A Candidate Recommendation is a document that has been widely reviewed and is ready for implementation. W3C encourages everybody to implement this specification and return comments to the (<a href="http://lists.w3.org/Archives/Public/www-style/" style="color: inherit; text-decoration: underline; background: transparent;">archived</a>) public mailing list<span class="Apple-converted-space">&nbsp;</span><a href="mailto:www-style@w3.org?Subject=%5Bcss-syntax-3%5D%20PUT%20SUBJECT%20HERE" style="color: inherit; text-decoration: underline; background: transparent;">www-style@w3.org</a><span class="Apple-converted-space">&nbsp;</span>(see<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/Mail/Request" style="color: inherit; text-decoration: underline; background: transparent;">instructions</a>). When sending e-mail, please put the text “css-syntax-3” in the subject, preferably like this: “[css-syntax-3]<em>…summary of comment…</em>”</p>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        Publication as a Candidate Recommendation does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.</p>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        This document was produced by a group operating under the<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/Consortium/Patent-Policy-20040205/" style="color: inherit; text-decoration: underline; background: transparent;">5 February 2004 W3C Patent Policy</a>. W3C maintains a<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/2004/01/pp-impl/32061/status" rel="disclosure" style="color: inherit; text-decoration: underline; background: transparent;">public list of any patent disclosures</a><span class="Apple-converted-space">&nbsp;</span>made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential" style="color: inherit; text-decoration: underline; background: transparent;">Essential Claim(s)</a><span class="Apple-converted-space">&nbsp;</span>must 
        disclose the information in accordance with<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure" style="color: inherit; text-decoration: underline; background: transparent;">section 6 of the W3C Patent Policy</a>.</p>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        This specification will not progress to Proposed Recommendation before 20 August 2014. See the section<span class="Apple-converted-space">&nbsp;</span><a href="#cr-exit-criteria" style="color: inherit; text-decoration: underline; background: transparent;">“CR exit criteria”</a><span class="Apple-converted-space">&nbsp;</span>for details.</p>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        For changes since the last draft, see the<span class="Apple-converted-space">&nbsp;</span><a href="#changes" style="color: inherit; text-decoration: underline; background: transparent;">Changes</a><span class="Apple-converted-space">&nbsp;</span>section.</p>
</div>
<div data-fill-with="at-risk" style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</div>
<h2 id="contents" class="no-num no-toc no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="content">Table of Contents</span></h2>
<div data-fill-with="table-of-contents" style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <ul class="toc" style="margin: 1em 0px 1em 5em; padding: 0px; line-height: 1.3; font-weight: bold; list-style: none;">
        <li class="heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#intro" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">1.</span><span class="content">Introduction</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#placement" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">1.1.</span><span class="content">Module interactions</span></a></li>
            </ul>
        </li>
        <li class="heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#syntax-description" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">2.</span><span class="content">Description of CSS’s Syntax</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#escaping" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">2.1.</span><span class="content">Escaping</span></a></li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#error-handling" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">2.2.</span><span class="content">Error Handling</span></a></li>
            </ul>
        </li>
        <li class="heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#tokenizing-and-parsing" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">3.</span><span class="content">Tokenizing and Parsing CSS</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parsing-overview" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">3.1.</span><span class="content">Overview of the Parsing Model</span></a></li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#input-byte-stream" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">3.2.</span><span class="content">The input byte stream</span></a></li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#input-preprocessing" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">3.3.</span><span class="content">Preprocessing the input stream</span></a></li>
            </ul>
        </li>
        <li class="heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#tokenization" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">4.</span><span class="content">Tokenization</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#token-diagrams" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">4.1.</span><span class="content">Token Railroad Diagrams</span></a></li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#tokenizer-definitions" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">4.2.</span><span class="content">Definitions</span></a></li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#tokenizer-algorithms" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">4.3.</span><span class="content">Tokenizer Algorithms</span></a><ul class="toc" style="margin: 0px 0px 0px 2em; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none; font-style: italic;">
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-token" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.1.</span><span class="content">Consume a token</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-numeric-token" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.2.</span><span class="content">Consume a numeric token</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-an-ident-like-token" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.3.</span><span class="content">Consume an ident-like token</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-string-token" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.4.</span><span class="content">Consume a string token</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-url-token" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.5.</span><span class="content">Consume a url token</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-unicode-range-token" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.6.</span><span class="content">Consume a unicode-range token</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-an-escaped-code-point" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.7.</span><span class="content">Consume an escaped code point</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#starts-with-a-valid-escape" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.8.</span><span class="content">Check if two code points are a valid escape</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#would-start-an-identifier" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.9.</span><span class="content">Check if three code points would start an identifier</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#starts-with-a-number" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.10.</span><span class="content">Check if three code points would start a number</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-name" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.11.</span><span class="content">Consume a name</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-number" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.12.</span><span class="content">Consume a number</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#convert-a-string-to-a-number" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.13.</span><span class="content">Convert a string to a number</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-the-remnants-of-a-bad-url" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">4.3.14.</span><span class="content">Consume the remnants of a bad url</span></a></li>
                </ul>
            </li>
            </ul>
        </li>
        <li class="heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#parsing" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">5.</span><span class="content">Parsing</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parser-diagrams" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">5.1.</span><span class="content">Parser Railroad Diagrams</span></a></li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parser-definitions" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">5.2.</span><span class="content">Definitions</span></a></li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parser-entry-points" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">5.3.</span><span class="content">Parser Entry Points</span></a><ul class="toc" style="margin: 0px 0px 0px 2em; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none; font-style: italic;">
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parse-a-stylesheet" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.3.1.</span><span class="content">Parse a stylesheet</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parse-a-list-of-rules" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.3.2.</span><span class="content">Parse a list of rules</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parse-a-rule" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.3.3.</span><span class="content">Parse a rule</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parse-a-declaration" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.3.4.</span><span class="content">Parse a declaration</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parse-a-list-of-declarations" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.3.5.</span><span class="content">Parse a list of declarations</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parse-a-component-value" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.3.6.</span><span class="content">Parse a component value</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parse-a-list-of-component-values" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.3.7.</span><span class="content">Parse a list of component values</span></a></li>
                </ul>
            </li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#parser-algorithms" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">5.4.</span><span class="content">Parser Algorithms</span></a><ul class="toc" style="margin: 0px 0px 0px 2em; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none; font-style: italic;">
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-list-of-rules" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.4.1.</span><span class="content">Consume a list of rules</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-an-at-rule" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.4.2.</span><span class="content">Consume an at-rule</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-qualified-rule" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.4.3.</span><span class="content">Consume a qualified rule</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-list-of-declarations" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.4.4.</span><span class="content">Consume a list of declarations</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-declaration" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.4.5.</span><span class="content">Consume a declaration</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-component-value" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.4.6.</span><span class="content">Consume a component value</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-simple-block" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.4.7.</span><span class="content">Consume a simple block</span></a></li>
                <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#consume-a-function" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -7em;">5.4.8.</span><span class="content">Consume a function</span></a></li>
                </ul>
            </li>
            </ul>
        </li>
        <li class="heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#anb" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">6.</span><span class="content">The<span class="Apple-converted-space">&nbsp;</span><var>An+B</var><span class="Apple-converted-space">&nbsp;</span>microsyntax</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#anb-syntax" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">6.1.</span><span class="content">Informal Syntax Description</span></a></li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#the-anb-type" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">6.2.</span><span class="content">The<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;an+b&gt;</code><span class="Apple-converted-space">&nbsp;</span>type</span></a></li>
            </ul>
        </li>
        <li class="heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#rule-defs" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">7.</span><span class="content">Defining Grammars for Rules and Other Values</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#declaration-rule-list" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">7.1.</span><span class="content">Defining Block Contents: the &lt;declaration-list&gt;, &lt;rule-list&gt;, and &lt;stylesheet&gt; productions</span></a></li>
            </ul>
        </li>
        <li class="heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#css-stylesheets" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">8.</span><span class="content">CSS stylesheets</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#style-rules" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">8.1.</span><span class="content">Style rules</span></a></li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#charset-rule" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">8.2.</span><span class="content">The @charset Rule</span></a></li>
            </ul>
        </li>
        <li class="heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#serialization" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">9.</span><span class="content">Serialization</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#serializing-anb" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">9.1.</span><span class="content">Serializing<span class="Apple-converted-space">&nbsp;</span><var>&lt;an+b&gt;</var></span></a></li>
            </ul>
        </li>
        <li class="heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#changes" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">10.</span><span class="content">Changes</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#changes-WD-20131105" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">10.1.</span><span class="content">Changes from the 5 November 2013 Last Call Working Draft</span></a></li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#changes-WD-20130919" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">10.2.</span><span class="content">Changes from the 19 September 2013 Working Draft</span></a></li>
            <li class="heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#changes-css21" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">10.3.</span><span class="content">Changes from CSS 2.1 and Selectors Level 3</span></a></li>
            </ul>
        </li>
        <li class="no-num heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#acknowledgments" style="color: inherit; text-decoration: none; background: transparent;"><span class="content">Acknowledgments</span></a></li>
        <li class="no-ref no-num heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#conformance" style="color: inherit; text-decoration: none; background: transparent;"><span class="content">Conformance</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="no-ref heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#conventions" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">10.4.</span><span class="content">Document conventions</span></a></li>
            <li class="no-ref heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#conformance-classes" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">10.5.</span><span class="content">Conformance classes</span></a></li>
            <li class="no-ref heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#partial" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">10.6.</span><span class="content">Partial implementations</span></a></li>
            <li class="no-ref heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#experimental" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">10.7.</span><span class="content">Experimental implementations</span></a></li>
            <li class="no-ref heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#testing" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">10.8.</span><span class="content">Non-experimental implementations</span></a></li>
            <li class="no-ref heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#cr-exit-criteria" style="color: inherit; text-decoration: none; background: transparent;"><span class="secno" style="float: left; width: 4em; margin-left: -5em;">10.9.</span><span class="content">CR exit criteria</span></a></li>
            </ul>
        </li>
        <li class="no-num no-ref heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#references" style="color: inherit; text-decoration: none; background: transparent;"><span class="content">References</span></a><ul class="toc" style="margin: 0px; padding: 0px; line-height: 1.3; font-weight: normal; list-style: none; text-transform: none;">
            <li class="no-num no-ref heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#normative" style="color: inherit; text-decoration: none; background: transparent;"><span class="content">Normative References</span></a></li>
            <li class="no-num no-ref heading settled heading" style="margin: 0.3em 0px 0px; padding: 0px; position: relative; clear: both;"><a href="#informative" style="color: inherit; text-decoration: none; background: transparent;"><span class="content">Informative References</span></a></li>
            </ul>
        </li>
        <li class="no-num no-ref heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#index" style="color: inherit; text-decoration: none; background: transparent;"><span class="content">Index</span></a></li>
        <li class="no-num no-ref heading settled heading" style="margin: 1.5em 0px; padding: 0px; position: relative; clear: both;"><a href="#property-index" style="color: inherit; text-decoration: none; background: transparent;"><span class="content">Property index</span></a></li>
    </ul>
</div>
<h2 id="intro" class="heading settled heading" data-level="1" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">1.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Introduction</span><a class="self-link" href="#intro" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <em>This section is not normative.</em></p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This module defines the abstract syntax and parsing of CSS stylesheets and other things which use CSS syntax (such as the HTML<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">style</code><span class="Apple-converted-space">&nbsp;</span>attribute).</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    It defines algorithms for converting a stream of Unicode<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>(in other words, text) into a stream of CSS tokens, and then further into CSS objects such as stylesheets, rules, and declarations.</p>
<h3 id="placement" class="heading settled heading" data-level="1.1" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">1.1.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Module interactions</span><a class="self-link" href="#placement" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This module defines the syntax and parsing of CSS stylesheets. It supersedes the lexical scanner and grammar defined in CSS 2.1.</p>
<h2 id="syntax-description" class="heading settled heading" data-level="2" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">2.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Description of CSS’s Syntax</span><a class="self-link" href="#syntax-description" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <em>This section is not normative.</em></p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    A CSS document is a series of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#qualified-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="qualified rules">qualified rules</a>, which are usually style rules that apply CSS properties to elements, and<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#at-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="at-rules">at-rules</a>, which define special processing rules or values for the CSS document.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    A qualified rule starts with a prelude then has a {}-wrapped block containing a sequence of declarations. The meaning of the prelude varies based on the context that the rule appears in - for style rules, it’s a selector which specifies what elements the declarations will apply to. Each declaration has a name, followed by a colon and the declaration value. Declarations are separated by semicolons.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    <p style="margin-top: 1em; margin-bottom: 1em;">
        A typical rule might look something like this:</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">  p &gt; a {
    color: blue;
    text-decoration: underline;
  }
</pre>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        In the above rule, &quot;<code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">p &gt; a</code>&quot; is the selector, which, if the source document is HTML, selects any<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;a&gt;</code><span class="Apple-converted-space">&nbsp;</span>elements that are children of a<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;p&gt;</code><span class="Apple-converted-space">&nbsp;</span>element.</p>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        &quot;<code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">color: blue;</code>&quot; is a declaration specifying that, for the elements that match the selector, their<span class="Apple-converted-space">&nbsp;</span><a class="property" data-link-type="propdesc" href="http://www.w3.org/TR/css3-color/#color0" style="color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; white-space: nowrap; text-decoration: underline; background: transparent;" title="color">color</a><span class="Apple-converted-space">&nbsp;</span>property should have the value<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="blue">blue</span>. Similarly, their<a class="property" data-link-type="propdesc" href="http://www.w3.org/TR/css-text-decor-3/#text-decoration" style="color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; white-space: nowrap; text-decoration: underline; background: transparent;" title="text-decoration">text-decoration</a><span class="Apple-converted-space">&nbsp;</span>property 
        should have the value<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="underline">underline</span>.</p>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    At-rules are all different, but they have a basic structure in common. They start with an &quot;@&quot;<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>followed by their name. Some<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#at-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="at-rules">at-rules</a><span class="Apple-converted-space">&nbsp;</span>are simple statements, with their name followed by more CSS values to specify their behavior, and finally ended by a semicolon. Others are blocks; they can have CSS values following their name, but they end with a {}-wrapped block, similar to a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#qualified-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="qualified rule">qualified 
    rule</a>. Even the contents of these blocks are specific to the given<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#at-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="at-rule">at-rule</a>: sometimes they contain a sequence of declarations, like a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#qualified-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="qualified rule">qualified rule</a>; other times, they may contain additional blocks, or at-rules, or other structures altogether.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    <p style="margin-top: 1em; margin-bottom: 1em;">
        Here are several examples of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#at-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="at-rules">at-rules</a><span class="Apple-converted-space">&nbsp;</span>that illustrate the varied syntax they may contain.</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">@import &quot;my-styles.css&quot;;</pre>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        The<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://www.w3.org/TR/css3-cascade/#at-ruledef-import" style="color: inherit; text-decoration: underline; background: transparent;" title="@import">@import</a><span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#at-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="at-rule">at-rule</a><span class="Apple-converted-space">&nbsp;</span>is a simple statement. After its name, it takes a single string or<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="url()">url()</span><span class="Apple-converted-space">&nbsp;</span>function to indicate the stylesheet that it should import.</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">  @page :left {
    margin-left: 4cm;
    margin-right: 3cm;
  }
</pre>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        The<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="@page">@page</span><span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#at-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="at-rule">at-rule</a><span class="Apple-converted-space">&nbsp;</span>consists of an optional page selector (the<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title=":left">:left</span><span class="Apple-converted-space">&nbsp;</span>pseudoclass), followed by a block of properties that apply to the page when printed. In this way, it’s very similar to a normal style rule, except that its properties don’t apply to any &quot;element&quot;, but rather the page itself.</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">  @media print {
    body { font-size: 10pt }
  }
</pre>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        The<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://dev.w3.org/csswg/css-conditional-3/#at-ruledef-media" style="color: inherit; text-decoration: underline; background: transparent;" title="@media">@media</a><span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#at-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="at-rule">at-rule</a><span class="Apple-converted-space">&nbsp;</span>begins with a media type and a list of optional media queries. Its block contains entire rules, which are only applied when the<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://dev.w3.org/csswg/css-conditional-3/#at-ruledef-media" style="color: inherit; text-decoration: underline; background: transparent;" title="@media">@media</a>s conditions are fulfilled.</p>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Property names and<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#at-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="at-rule">at-rule</a><span class="Apple-converted-space">&nbsp;</span>names are always<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#identifier" style="color: inherit; text-decoration: underline; background: transparent;" title="identifiers">identifiers</a>, which have to start with a letter or a hyphen followed by a letter, and then can contain letters, numbers, hyphens, or underscores. You can include any<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>at all, even ones that CSS uses in its 
    syntax, by<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#escaping0" style="color: inherit; text-decoration: underline; background: transparent;" title="escaping">escaping</a><span class="Apple-converted-space">&nbsp;</span>it.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The syntax of selectors is defined in the<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/selectors/" style="color: inherit; text-decoration: underline; background: transparent;">Selectors spec</a>. Similarly, the syntax of the wide variety of CSS values is defined in the<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/css3-values/" style="color: inherit; text-decoration: underline; background: transparent;">Values &amp; Units spec</a>. The special syntaxes of individual<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#at-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="at-rules">at-rules</a><span class="Apple-converted-space">&nbsp;</span>can be found in the specs that define them.</p>
<h3 id="escaping" class="heading settled heading" data-level="2.1" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">2.1.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#escaping0" style="color: inherit; text-decoration: underline; background: transparent;">Escaping</a><a class="self-link" href="#escaping" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <em>This section is not normative.</em></p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Any Unicode<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>can be included in an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#identifier" style="color: inherit; text-decoration: underline; background: transparent;" title="identifier">identifier</a><span class="Apple-converted-space">&nbsp;</span>or quoted string by<span class="Apple-converted-space">&nbsp;</span><dfn id="escaping0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">escaping<a class="self-link" href="#escaping0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>it. 
    CSS escape sequences start with a backslash (\), and continue with:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Any Unicode<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>that is not a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digits">hex digits</a><span class="Apple-converted-space">&nbsp;</span>or a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#newline" style="color: inherit; text-decoration: underline; background: transparent;" title="newline">newline</a>. The escape sequence is replaced by that<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code 
        point</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Or one to six<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digits">hex digits</a>, followed by an optional<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#whitespace" style="color: inherit; text-decoration: underline; background: transparent;" title="whitespace">whitespace</a>. The escape sequence is replaced by the Unicode<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>whose value is given by the hexadecimal digits. This optional whitespace allow hexadecimal escape 
        sequences to be followed by &quot;real&quot; hex digits.<p class="example" style="margin: 1em 0px; page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; background: rgb(252, 250, 238);">
            An<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#identifier" style="color: inherit; text-decoration: underline; background: transparent;" title="identifier">identifier</a><span class="Apple-converted-space">&nbsp;</span>with the value &quot;&amp;B&quot; could be written as<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="\26 b">\26 B</span><span class="Apple-converted-space">&nbsp;</span>or<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="\000026b">\000026B</span>.</p>
        <p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; background: rgb(233, 251, 233);">
            A &quot;real&quot; space after the escape sequence must be doubled.</p>
    </li>
</ul>
<h3 id="error-handling" class="heading settled heading" data-level="2.2" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">2.2.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Error Handling</span><a class="self-link" href="#error-handling" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <em>This section is not normative.</em></p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    When errors occur in CSS, the parser attempts to recover gracefully, throwing away only the minimum amount of content before returning to parsing as normal. This is because errors aren’t always mistakes - new syntax looks like an error to an old parser, and it’s useful to be able to add new syntax to the language without worrying about stylesheets that include it being completely broken in older UAs.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The precise error-recovery behavior is detailed in the parser itself, but it’s simple enough that a short description is fairly accurate:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">At the &quot;top level&quot; of a stylesheet, an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>starts an at-rule. Anything else starts a qualified rule, and is included in the rule’s prelude. This may produce an invalid selector, but that’s not the concern of the CSS parser — at worst, it means the selector will match nothing.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Once an at-rule starts, nothing is invalid from the parser’s standpoint; it’s all part of the at-rule’s prelude. Encountering a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-semicolon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;semicolon-token&gt;">&lt;semicolon-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>ends the at-rule immediately, while encountering an opening curly-brace<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;{-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>starts the at-rule’s body. The at-rule seeks forward, matching blocks (content surrounded by (), {}, or []) until it finds a closing curly-brace<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;}-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>that 
        isn’t matched by anything else or inside of another block. The contents of the at-rule are then interpreted according to the at-rule’s own grammar.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Qualified rules work similarly, except that semicolons don’t end them; instead, they are just taken in as part of the rule’s prelude. When the first {} block is found, the contents are always interpreted as a list of declarations.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">When interpreting a list of declarations, unknown syntax at any point causes the parser to throw away whatever declaration it’s currently building, and seek forward until it finds a semicolon (or the end of the block). It then starts fresh, trying to parse a declaration again.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the stylesheet ends while any rule, declaration, function, string, etc. are still open, everything is automatically closed. This doesn’t make them invalid, though they may be incomplete and thus thrown away when they are verified against their grammar.</li>
</ul>
<h2 id="tokenizing-and-parsing" class="heading settled heading" data-level="3" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">3.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Tokenizing and Parsing CSS</span><a class="self-link" href="#tokenizing-and-parsing" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    User agents must use the parsing rules described in this specification to generate the CSSOM trees from text/css resources. Together, these rules define what is referred to as the CSS parser.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This specification defines the parsing rules for CSS documents, whether they are syntactically correct or not. Certain points in the parsing algorithm are said to be a<span class="Apple-converted-space">&nbsp;</span><dfn id="parse-error" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;" title="parse error">parse errors<a class="self-link" href="#parse-error" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>. The error handling for parse errors is well-defined: user agents must either act as described below when encountering such problems, or must abort processing at the first error that they encounter for which they do not wish to apply the rules 
    described below.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Conformance checkers must report at least one parse error condition to the user if one or more parse error conditions exist in the document and must not report parse error conditions if none exist in the document. Conformance checkers may report more than one parse error condition if more than one parse error condition exists in the document. Conformance checkers are not required to recover from parse errors, but if they do, they must recover in the same way as user agents.</p>
<h3 id="parsing-overview" class="heading settled heading" data-level="3.1" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">3.1.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Overview of the Parsing Model</span><a class="self-link" href="#parsing-overview" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The input to the CSS parsing process consists of a stream of Unicode<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>, which is passed through a tokenization stage followed by a tree construction stage. The output is a CSSStyleSheet object.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: Implementations that do not support scripting do not have to actually create a CSSOM CSSStyleSheet object, but the CSSOM tree in such cases is still used as the model for the rest of the specification.</p>
<h3 id="input-byte-stream" class="heading settled heading" data-level="3.2" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">3.2.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">The input byte stream</span><a class="self-link" href="#input-byte-stream" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    When parsing a stylesheet, the stream of Unicode<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>that comprises the input to the tokenization stage might be initially seen by the user agent as a stream of bytes (typically coming over the network or from the local file system). If so, the user agent must decode these bytes into<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>according to a particular character encoding.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To decode the stream of bytes into a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>, UAs must use the<span class="Apple-converted-space">&nbsp;</span><dfn id="decode" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;"><a href="http://encoding.spec.whatwg.org/#decode" style="color: inherit; text-decoration: underline; background: transparent;">decode</a><a class="self-link" href="#decode" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>algorithm 
    defined in<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="normative" data-link-type="biblio" href="#encoding" style="color: inherit; text-decoration: underline; background: transparent;" title="encoding">[ENCODING]</a>, with the fallback encoding determined as follows.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: The<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#decode" style="color: inherit; text-decoration: underline; background: transparent;" title="decode">decode</a><span class="Apple-converted-space">&nbsp;</span>algorithm gives precedence to a byte order mark (BOM), and only uses the fallback when none is found.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="determine-the-fallback-encoding" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">determine the fallback encoding<a class="self-link" href="#determine-the-fallback-encoding" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If HTTP or equivalent protocol defines an encoding (e.g. via the charset parameter of the Content-Type header),<span class="Apple-converted-space">&nbsp;</span><dfn id="get-an-encoding" data-dfn-type="dfn" data-export="" style="font-weight: bolder;"><a href="http://encoding.spec.whatwg.org/#concept-encoding-get" style="color: inherit; text-decoration: underline; background: transparent;">get an encoding</a><a class="self-link" href="#get-an-encoding" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="normative" data-link-type="biblio" href="#encoding" style="color: inherit; text-decoration: underline; background: transparent;" title="encoding">[ENCODING]</a><span class="Apple-converted-space">&nbsp;</span>for 
        the specified value. If that does not return failure, use the return value as the fallback encoding.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Otherwise, check the byte stream. If the first 1024 bytes of the stream begin with the hex sequence<pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">40 63 68 61 72 73 65 74 20 22 XX* 22 3B</pre>
        <p style="margin-top: 1em; margin-bottom: 1em;">
            where each<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">XX</code><span class="Apple-converted-space">&nbsp;</span>byte is a value between 0<sub>16</sub><span class="Apple-converted-space">&nbsp;</span>and 21<sub>16</sub><span class="Apple-converted-space">&nbsp;</span>inclusive or a value between 23<sub>16</sub><span class="Apple-converted-space">&nbsp;</span>and 7F<sub>16</sub><span class="Apple-converted-space">&nbsp;</span>inclusive, then<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#get-an-encoding" style="color: inherit; text-decoration: underline; background: transparent;" title="get an encoding">get an encoding</a><span class="Apple-converted-space">&nbsp;</span>for the sequence of<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">XX</code><span class="Apple-converted-space">&nbsp;</span>bytes, 
            interpreted as<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">ASCII</code>.</p>
        <details class="why" style="padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; margin-top: 1em; margin-bottom: 1em; display: block; background: rgb(233, 251, 233);">
        <summary style="font-style: italic; display: block;">
        What does that byte sequence mean?</summary></details><p style="margin-top: 1em; margin-bottom: 1em;">
            If the return value was<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">utf-16be</code><span class="Apple-converted-space">&nbsp;</span>or<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">utf-16le</code>, use<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">utf-8</code><span class="Apple-converted-space">&nbsp;</span>as the fallback encoding; if it was anything else except failure, use the return value as the fallback encoding.</p>
        <details class="why" style="padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; margin-top: 1em; margin-bottom: 1em; display: block; background: rgb(233, 251, 233);">
        <summary style="font-style: italic; display: block;">
        Why use utf-8 when the declaration says utf-16?</summary></details><p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; background: rgb(233, 251, 233);">
            Note: Note that the syntax of an encoding declaration<span class="Apple-converted-space">&nbsp;</span><em>looks like</em><span class="Apple-converted-space">&nbsp;</span>the syntax of an<span class="Apple-converted-space">&nbsp;</span><a class="css-code" data-link-type="at-rule" href="#at-ruledef-charset" style="color: inherit; text-decoration: underline; background: transparent;" title="@charset">@charset</a><span class="Apple-converted-space">&nbsp;</span>rule, but it’s actually much more restrictive. A number of things you can do in CSS that would produce a valid<span class="Apple-converted-space">&nbsp;</span><a class="css-code" data-link-type="at-rule" href="#at-ruledef-charset" style="color: inherit; text-decoration: underline; background: transparent;" title="@charset">@charset</a><span class="Apple-converted-space">&nbsp;</span>rule, such as using multiple spaces, comments, or single quotes, will cause the encoding declaration to not be 
            recognized. This behavior keeps the encoding declaration as simple as possible, and thus maximizes the likelihood of it being implemented correctly.</p>
    </li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Otherwise, if an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#environment-encoding" style="color: inherit; text-decoration: underline; background: transparent;" title="environment encoding">environment encoding</a><span class="Apple-converted-space">&nbsp;</span>is provided by the referring document, use that as the fallback encoding.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Otherwise, use<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">utf-8</code><span class="Apple-converted-space">&nbsp;</span>as the fallback encoding.</li>
</ol>
<div class="note" style="position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    <p style="margin-top: 0px; margin-bottom: 1em;">
        Though UTF-8 is the default encoding for the web, and many newer web-based file formats assume or require UTF-8 encoding, CSS was created before it was clear which encoding would win, and thus can’t automatically assume the stylesheet is UTF-8.</p>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        Stylesheet authors<span class="Apple-converted-space">&nbsp;</span><em>should</em><span class="Apple-converted-space">&nbsp;</span>author their stylesheets in UTF-8, and ensure that either an HTTP header (or equivalent method) declares the encoding of the stylesheet to be UTF-8, or that the referring document declares its encoding to be UTF-8. (In HTML, this is done by adding a<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;meta charset=utf-8&gt;</code><span class="Apple-converted-space">&nbsp;</span>element to the head of the document.)</p>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        If neither of these options are available, authors should begin the stylesheet with a UTF-8 BOM or the exact characters</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">@charset &quot;utf-8&quot;;</pre>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Document languages that refer to CSS stylesheets that are decoded from bytes may define an<span class="Apple-converted-space">&nbsp;</span><dfn id="environment-encoding" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">environment encoding<a class="self-link" href="#environment-encoding" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>for each such stylesheet, which is used as a fallback when other encoding hints are not available or can not be used.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The concept of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#environment-encoding" style="color: inherit; text-decoration: underline; background: transparent;" title="environment encoding">environment encoding</a><span class="Apple-converted-space">&nbsp;</span>only exists for compatibility with legacy content. New formats and new linking mechanisms<span class="Apple-converted-space">&nbsp;</span><b>should not</b><span class="Apple-converted-space">&nbsp;</span>provide an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#environment-encoding" style="color: inherit; text-decoration: underline; background: transparent;" title="environment encoding">environment encoding</a>, so the stylesheet defaults to UTF-8 instead in the absence of more explicit information.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note:<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="informative" data-link-type="biblio" href="#html" style="color: inherit; text-decoration: underline; background: transparent;" title="html">[HTML]</a><span class="Apple-converted-space">&nbsp;</span>defines<span class="Apple-converted-space">&nbsp;</span><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#link-type-stylesheet" style="color: inherit; text-decoration: underline; background: transparent;">the environment encoding for<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;link rel=stylesheet&gt;</code></a>.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note:<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="informative" data-link-type="biblio" href="#cssom" style="color: inherit; text-decoration: underline; background: transparent;" title="cssom">[CSSOM]</a><span class="Apple-converted-space">&nbsp;</span>defines<span class="Apple-converted-space">&nbsp;</span><a href="http://dev.w3.org/csswg/cssom/#requirements-on-user-agents-implementing-the-xml-stylesheet-processing-instruction" style="color: inherit; text-decoration: underline; background: transparent;">the environment encoding for<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;xml-stylesheet?&gt;</code></a>.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note:<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="informative" data-link-type="biblio" href="#css3cascade" style="color: inherit; text-decoration: underline; background: transparent;" title="css3cascade">[CSS3CASCADE]</a><span class="Apple-converted-space">&nbsp;</span>defines<span class="Apple-converted-space">&nbsp;</span><a href="http://dev.w3.org/csswg/css-cascade/#at-ruledef-import" style="color: inherit; text-decoration: underline; background: transparent;">the environment encoding for<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">@import</code></a>.</p>
<h3 id="input-preprocessing" class="heading settled heading" data-level="3.3" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">3.3.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Preprocessing the input stream</span><a class="self-link" href="#input-preprocessing" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The input stream consists of the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>pushed into it as the input byte stream is decoded.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Before sending the input stream to the tokenizer, implementations must make the following<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>substitutions:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Replace any U+000D CARRIAGE RETURN (CR)<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a>, U+000C FORM FEED (FF)<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a>, or pairs of U+000D CARRIAGE RETURN (CR) followed by U+000A LINE FEED (LF) by a single U+000A LINE FEED (LF)<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Replace any U+0000 NULL<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>with U+FFFD REPLACEMENT CHARACTER (�).</li>
</ul>
<h2 id="tokenization" class="heading settled heading" data-level="4" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">4.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Tokenization</span><a class="self-link" href="#tokenization" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Implementations must act as if they used the following algorithms to tokenize CSS. To transform a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>into a stream of tokens, repeatedly<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a token">consume a token</a><span class="Apple-converted-space">&nbsp;</span>until an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>is 
    reached, collecting the returned tokens into a stream. Each call to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a token">consume a token</a><span class="Apple-converted-space">&nbsp;</span>algorithm returns a single token, so it can also be used &quot;on-demand&quot; to tokenize a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span><em>during</em><span class="Apple-converted-space">&nbsp;</span>parsing, if so desired.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The output of the tokenization step is a stream of zero or more of the following tokens:<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-ident-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;ident-token&gt;<a class="self-link" href="#typedef-ident-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-function-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;function-token&gt;<a class="self-link" href="#typedef-function-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-at-keyword-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;at-keyword-token&gt;<a class="self-link" href="#typedef-at-keyword-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-hash-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;hash-token&gt;<a class="self-link" href="#typedef-hash-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-string-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;string-token&gt;<a class="self-link" href="#typedef-string-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<dfn id="typedef-bad-string-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;bad-string-token&gt;<a class="self-link" href="#typedef-bad-string-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-url-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;url-token&gt;<a class="self-link" href="#typedef-url-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-bad-url-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;bad-url-token&gt;<a class="self-link" href="#typedef-bad-url-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-delim-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;delim-token&gt;<a class="self-link" href="#typedef-delim-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-number-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;number-token&gt;<a class="self-link" href="#typedef-number-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-percentage-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;percentage-token&gt;<a class="self-link" href="#typedef-percentage-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-dimension-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;dimension-token&gt;<a class="self-link" href="#typedef-dimension-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-unicode-range-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;unicode-range-token&gt;<a class="self-link" href="#typedef-unicode-range-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-include-match-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;include-match-token&gt;<a class="self-link" href="#typedef-include-match-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<dfn id="typedef-dash-match-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;dash-match-token&gt;<a class="self-link" href="#typedef-dash-match-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-prefix-match-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;prefix-match-token&gt;<a class="self-link" href="#typedef-prefix-match-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-suffix-match-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;suffix-match-token&gt;<a class="self-link" href="#typedef-suffix-match-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-substring-match-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;substring-match-token&gt;<a class="self-link" href="#typedef-substring-match-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-column-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;column-token&gt;<a class="self-link" href="#typedef-column-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-whitespace-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;whitespace-token&gt;<a class="self-link" href="#typedef-whitespace-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-cdo-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;CDO-token&gt;<a class="self-link" href="#typedef-cdo-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-cdc-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;CDC-token&gt;<a class="self-link" href="#typedef-cdc-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-colon-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;colon-token&gt;<a class="self-link" href="#typedef-colon-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<dfn id="typedef-semicolon-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;semicolon-token&gt;<a class="self-link" href="#typedef-semicolon-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-comma-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;comma-token&gt;<a class="self-link" href="#typedef-comma-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="tokendef-open-square" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;[-token&gt;<a class="self-link" href="#tokendef-open-square" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="tokendef-close-square" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;]-token&gt;<a class="self-link" href="#tokendef-close-square" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="tokendef-open-paren" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;(-token&gt;<a class="self-link" href="#tokendef-open-paren" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="tokendef-close-paren" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;)-token&gt;<a class="self-link" href="#tokendef-close-paren" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>,<span class="Apple-converted-space">&nbsp;</span><dfn id="tokendef-open-curly" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;{-token&gt;<a class="self-link" href="#tokendef-open-curly" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>, 
    and<span class="Apple-converted-space">&nbsp;</span><dfn id="tokendef-close-curly" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;}-token&gt;<a class="self-link" href="#tokendef-close-curly" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-function-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;function-token&gt;">&lt;function-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-hash-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;hash-token&gt;">&lt;hash-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;string-token&gt;">&lt;string-token&gt;</a>, 
        and<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>have a value composed of zero or more<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>. Additionally, hash tokens have a type flag set to either &quot;id&quot; or &quot;unrestricted&quot;. The type flag defaults to &quot;unrestricted&quot; if not otherwise set.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>has a value composed of a single<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a class="production css-code" data-link-type="type" href="#typedef-number-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;number-token&gt;">&lt;number-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-percentage-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;percentage-token&gt;">&lt;percentage-token&gt;</a>, and<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>have a representation composed of one or 
        more<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>, and a numeric value.<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-number-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;number-token&gt;">&lt;number-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a>additionally have a type flag set to either &quot;integer&quot; or &quot;number&quot;. The type flag defaults to &quot;integer&quot; if not 
        otherwise set.<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>additionally have a unit composed of one or more<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a class="production css-code" data-link-type="type" href="#typedef-unicode-range-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;unicode-range-token&gt;">&lt;unicode-range-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>has a<span class="Apple-converted-space">&nbsp;</span><dfn id="unicode-range-start" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;" title="start of the range">start<a class="self-link" href="#unicode-range-start" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>and 
        an<span class="Apple-converted-space">&nbsp;</span><dfn id="unicode-range-end" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;" title="end of the range">end<a class="self-link" href="#unicode-range-end" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>, a pair of integers.</li>
</ul>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: The type flag of hash tokens is used in the Selectors syntax<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="informative" data-link-type="biblio" href="#select" style="color: inherit; text-decoration: underline; background: transparent;" title="select">[SELECT]</a>. Only hash tokens with the &quot;id&quot; type are valid<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/selectors/#id-selectors" style="color: inherit; text-decoration: underline; background: transparent;">ID selectors</a>.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: As a technical note, the tokenizer defined here requires only three<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>of look-ahead. The tokens it produces are designed to allow Selectors to be parsed with one token of look-ahead, and additional tokens may be added in the future to maintain this invariant.</p>
<h3 id="token-diagrams" class="heading settled heading" data-level="4.1" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">4.1.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Token Railroad Diagrams</span><a class="self-link" href="#token-diagrams" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <em>This section is non-normative.</em></p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section presents an informative view of the tokenizer, in the form of railroad diagrams. Railroad diagrams are more compact than an explicit parser, but often easier to read than an regular expression.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    These diagrams are<span class="Apple-converted-space">&nbsp;</span><em>informative</em><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><em>incomplete</em>; they describe the grammar of &quot;correct&quot; tokens, but do not describe error-handling at all. They are provided solely to make it easier to get an intuitive grasp of the syntax of each token.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Diagrams with names such as<span class="Apple-converted-space">&nbsp;</span><em>&lt;foo-token&gt;</em><span class="Apple-converted-space">&nbsp;</span>represent tokens. The rest are productions referred to by other diagrams.</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt id="comment-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#comment-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>comment</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="81" viewbox="0 0 497 81" width="497">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0.0"></path><path d="M86.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="36" x="50.0" y="30"></rect><text x="68.0" y="45"></text></g><path d="M86 41h10"></path><g><path d="M96 41h0.0"></path><path d="M400.0 41h0.0"></path><path d="M96.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M116.0 21h264"></path></g><path d="M380.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M96.0 41h20"></path><g><path d="M116.0 41h0.0"></path><path d="M380.0 41h0.0"></path><path d="M116.0 41h10"></path><g><path d="M126.0 41h0.0"></path><path d="M370.0 41h0.0"></path><rect height="22" width="244" x="126.0" y="30"></rect><text x="248.0" y="45"></text></g><path d="M370.0 41h10"></path><path d="M126.0 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M126.0 61h244"></path></g><path d="M370.0 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M380.0 41h20"></path></g><path d="M400 41h10"></path><g><path d="M410 41h0.0"></path><path d="M446.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="36" x="410.0" y="30"></rect><text x="428.0" y="45"></text></g><path d="M446 41h10"></path><path d="M 456 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="newline-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#newline-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>newline</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="152" viewbox="0 0 173 152" width="173">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 31h0.0"></path><path d="M132.0 31h0.0"></path><path d="M40.0 31h20"></path><g><path d="M60.0 31h8.0"></path><path d="M104.0 31h8.0"></path><rect height="22" rx="10" ry="10" width="36" x="68.0" y="20"></rect><text x="86.0" y="35"></text></g><path d="M112.0 31h20"></path><path d="M40.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60.0 61h0.0"></path><path d="M112.0 61h0.0"></path><rect height="22" rx="10" ry="10" width="52" x="60.0" y="50"></rect><text x="86.0" y="65"></text></g><path d="M112.0 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M40.0 31a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M60.0 91h8.0"></path><path d="M104.0 91h8.0"></path><rect height="22" rx="10" ry="10" width="36" x="68.0" y="80"></rect><text x="86.0" y="95"></text></g><path d="M112.0 91a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path><path d="M40.0 31a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10"></path><g><path d="M60.0 121h8.0"></path><path d="M104.0 121h8.0"></path><rect height="22" rx="10" ry="10" width="36" x="68.0" y="110"></rect><text x="86.0" y="125"></text></g><path d="M112.0 121a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10"></path></g><path d="M 132 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="whitespace-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#whitespace-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>whitespace</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="122" viewbox="0 0 197 122" width="197">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 31h0.0"></path><path d="M156.0 31h0.0"></path><path d="M40.0 31h20"></path><g><path d="M60.0 31h8.0"></path><path d="M128.0 31h8.0"></path><rect height="22" rx="10" ry="10" width="60" x="68.0" y="20"></rect><text x="98.0" y="35"></text></g><path d="M136.0 31h20"></path><path d="M40.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60.0 61h20.0"></path><path d="M116.0 61h20.0"></path><rect height="22" rx="10" ry="10" width="36" x="80.0" y="50"></rect><text x="98.0" y="65"></text></g><path d="M136.0 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M40.0 31a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M60.0 91h0.0"></path><path d="M136.0 91h0.0"></path><rect height="22" width="76" x="60.0" y="80"></rect><text x="98.0" y="95"></text></g><path d="M136.0 91a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path></g><path d="M 156 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="hex-digit-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#hex-digit-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>hex digit</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 233 62" width="233">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M182.0 31h0.0"></path><rect height="22" width="132" x="50.0" y="20"></rect><text x="116.0" y="35"></text></g><path d="M182 31h10"></path><path d="M 192 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="escape-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#escape-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>escape</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="122" viewbox="0 0 441 122" width="441">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M78.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="50.0" y="20"></rect><text x="64.0" y="35"></text></g><path d="M78 31h10"></path><g><path d="M88 31h0.0"></path><path d="M400.0 31h0.0"></path><path d="M88.0 31h20"></path><g><path d="M108.0 31h30.0"></path><path d="M350.0 31h30.0"></path><rect height="22" width="212" x="138.0" y="20"></rect><text x="244.0" y="35"></text></g><path d="M380.0 31h20"></path><path d="M88.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M108.0 61h0.0"></path><path d="M380.0 61h0.0"></path><path d="M108.0 61h10"></path><g><path d="M118.0 61h0.0"></path><path d="M230.0 61h0.0"></path><path d="M118.0 61h10"></path><g><path d="M128.0 61h0.0"></path><path d="M220.0 61h0.0"></path><rect height="22" width="92" x="128.0" y="50"></rect><text x="174.0" y="65"></text></g><path d="M220.0 61h10"></path><path d="M128.0 61a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M128.0 91h9.5"></path><path d="M210.5 91h9.5"></path><text class="comment" x="174.0" y="96"></text></g><path d="M220.0 91a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M230.0 61h10"></path><g><path d="M240.0 61h0.0"></path><path d="M380.0 61h0.0"></path><path d="M240.0 61h20"></path><g><path d="M260.0 61h100"></path></g><path d="M360.0 61h20"></path><path d="M240.0 61a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M260.0 81h0.0"></path><path d="M360.0 81h0.0"></path><rect height="22" width="100" x="260.0" y="70"></rect><text x="310.0" y="85"></text></g><path d="M360.0 81a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g></g><path d="M380.0 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M 400 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="whitespace-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#whitespace-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="71" viewbox="0 0 221 71" width="221">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M170.0 31h0.0"></path><path d="M50.0 31h10"></path><g><path d="M60.0 31h0.0"></path><path d="M160.0 31h0.0"></path><rect height="22" width="100" x="60.0" y="20"></rect><text x="110.0" y="35"></text></g><path d="M160.0 31h10"></path><path d="M60.0 31a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M60.0 51h100"></path></g><path d="M160.0 51a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M170 31h10"></path><path d="M 180 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="ws*-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#ws%2A-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>ws*</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="81" viewbox="0 0 305 81" width="305">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 41h0.0"></path><path d="M264.0 41h0.0"></path><path d="M40.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M60.0 21h184"></path></g><path d="M244.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M40.0 41h20"></path><g><path d="M60.0 41h0.0"></path><path d="M244.0 41h0.0"></path><path d="M60.0 41h10"></path><g><path d="M70.0 41h0.0"></path><path d="M234.0 41h0.0"></path><rect height="22" width="164" x="70.0" y="30"></rect><text x="152.0" y="45"></text></g><path d="M234.0 41h10"></path><path d="M70.0 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M70.0 61h164"></path></g><path d="M234.0 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M244.0 41h20"></path></g><path d="M 264 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="ident-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#ident-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="110" viewbox="0 0 729 110" width="729">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 41h0.0"></path><path d="M108.0 41h0.0"></path><path d="M40.0 41h20"></path><g><path d="M60.0 41h28"></path></g><path d="M88.0 41h20"></path><path d="M40.0 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M60.0 61h0.0"></path><path d="M88.0 61h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="60.0" y="50"></rect><text x="74.0" y="65"></text></g><path d="M88.0 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><g><path d="M108 41h0.0"></path><path d="M344.0 41h0.0"></path><path d="M108.0 41h20"></path><g><path d="M128.0 41h0.0"></path><path d="M324.0 41h0.0"></path><rect height="22" width="196" x="128.0" y="30"></rect><text x="226.0" y="45"></text></g><path d="M324.0 41h20"></path><path d="M108.0 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M128.0 71h64.0"></path><path d="M260.0 71h64.0"></path><rect height="22" width="68" x="192.0" y="60"></rect><text x="226.0" y="75"></text></g><path d="M324.0 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><g><path d="M344 41h0.0"></path><path d="M688.0 41h0.0"></path><path d="M344.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M364.0 21h304"></path></g><path d="M668.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M344.0 41h20"></path><g><path d="M364.0 41h0.0"></path><path d="M668.0 41h0.0"></path><path d="M364.0 41h10"></path><g><path d="M374.0 41h0.0"></path><path d="M658.0 41h0.0"></path><path d="M374.0 41h20"></path><g><path d="M394.0 41h0.0"></path><path d="M638.0 41h0.0"></path><rect height="22" width="244" x="394.0" y="30"></rect><text x="516.0" y="45"></text></g><path d="M638.0 41h20"></path><path d="M374.0 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M394.0 71h88.0"></path><path d="M550.0 71h88.0"></path><rect height="22" width="68" x="482.0" y="60"></rect><text x="516.0" y="75"></text></g><path d="M638.0 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M658.0 41h10"></path><path d="M374.0 41a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M374.0 90h284"></path></g><path d="M658.0 90a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M668.0 41h20"></path></g><path d="M 688 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="function-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#function-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-function-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;function-token&gt;">&lt;function-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 273 62" width="273">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M174.0 31h0.0"></path><rect height="22" width="124" x="50.0" y="20"></rect><text x="112.0" y="35"></text></g><path d="M174 31h10"></path><path d="M184 31h10"></path><g><path d="M194 31h0.0"></path><path d="M222.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="194.0" y="20"></rect><text x="208.0" y="35"></text></g><path d="M222 31h10"></path><path d="M 232 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="at-keyword-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#at-keyword-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 273 62" width="273">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M78.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="50.0" y="20"></rect><text x="64.0" y="35"></text></g><path d="M78 31h10"></path><path d="M88 31h10"></path><g><path d="M98 31h0.0"></path><path d="M222.0 31h0.0"></path><rect height="22" width="124" x="98.0" y="20"></rect><text x="160.0" y="35"></text></g><path d="M222 31h10"></path><path d="M 232 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="hash-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#hash-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-hash-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;hash-token&gt;">&lt;hash-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="100" viewbox="0 0 453 100" width="453">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M78.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="50.0" y="20"></rect><text x="64.0" y="35"></text></g><path d="M78 31h10"></path><path d="M88 31h10"></path><g><path d="M98 31h0.0"></path><path d="M402.0 31h0.0"></path><path d="M98.0 31h10"></path><g><path d="M108.0 31h0.0"></path><path d="M392.0 31h0.0"></path><path d="M108.0 31h20"></path><g><path d="M128.0 31h0.0"></path><path d="M372.0 31h0.0"></path><rect height="22" width="244" x="128.0" y="20"></rect><text x="250.0" y="35"></text></g><path d="M372.0 31h20"></path><path d="M108.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M128.0 61h88.0"></path><path d="M284.0 61h88.0"></path><rect height="22" width="68" x="216.0" y="50"></rect><text x="250.0" y="65"></text></g><path d="M372.0 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M392.0 31h10"></path><path d="M108.0 31a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M108.0 80h284"></path></g><path d="M392.0 80a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M402 31h10"></path><path d="M 412 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="string-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#string-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;string-token&gt;">&lt;string-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="248" viewbox="0 0 481 248" width="481">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 41h0.0"></path><path d="M440.0 41h0.0"></path><path d="M40.0 41h20"></path><g><path d="M60.0 41h0.0"></path><path d="M420.0 41h0.0"></path><path d="M60.0 41h10"></path><g><path d="M70.0 41h0.0"></path><path d="M98.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="70.0" y="30"></rect><text x="84.0" y="45"></text></g><path d="M98.0 41h10"></path><g><path d="M108.0 41h0.0"></path><path d="M372.0 41h0.0"></path><path d="M108.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M128.0 21h224"></path></g><path d="M352.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M108.0 41h20"></path><g><path d="M128.0 41h0.0"></path><path d="M352.0 41h0.0"></path><path d="M128.0 41h10"></path><g><path d="M138.0 41h0.0"></path><path d="M342.0 41h0.0"></path><path d="M138.0 41h20"></path><g><path d="M158.0 41h0.0"></path><path d="M322.0 41h0.0"></path><rect height="22" width="164" x="158.0" y="30"></rect><text x="240.0" y="45"></text></g><path d="M322.0 41h20"></path><path d="M138.0 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M158.0 71h48.0"></path><path d="M274.0 71h48.0"></path><rect height="22" width="68" x="206.0" y="60"></rect><text x="240.0" y="75"></text></g><path d="M322.0 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M138.0 41a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M158.0 101h10.0"></path><path d="M312.0 101h10.0"></path><path d="M168.0 101h10"></path><g><path d="M178.0 101h0.0"></path><path d="M206.0 101h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="178.0" y="90"></rect><text x="192.0" y="105"></text></g><path d="M206.0 101h10"></path><path d="M216.0 101h10"></path><g><path d="M226.0 101h0.0"></path><path d="M302.0 101h0.0"></path><rect height="22" width="76" x="226.0" y="90"></rect><text x="264.0" y="105"></text></g><path d="M302.0 101h10"></path></g><path d="M322.0 101a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path></g><path d="M342.0 41h10"></path><path d="M138.0 41a10 10 0 0 0 -10 10v59a10 10 0 0 0 10 10"></path><g><path d="M138.0 120h204"></path></g><path d="M342.0 120a10 10 0 0 0 10 -10v-59a10 10 0 0 0 -10 -10"></path></g><path d="M352.0 41h20"></path></g><path d="M372.0 41h10"></path><g><path d="M382.0 41h0.0"></path><path d="M410.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="382.0" y="30"></rect><text x="396.0" y="45"></text></g><path d="M410.0 41h10"></path></g><path d="M420.0 41h20"></path><path d="M40.0 41a10 10 0 0 1 10 10v88a10 10 0 0 0 10 10"></path><g><path d="M60.0 149h0.0"></path><path d="M420.0 149h0.0"></path><path d="M60.0 149h10"></path><g><path d="M70.0 149h0.0"></path><path d="M98.0 149h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="70.0" y="138"></rect><text x="84.0" y="153"></text></g><path d="M98.0 149h10"></path><g><path d="M108.0 149h0.0"></path><path d="M372.0 149h0.0"></path><path d="M108.0 149a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M128.0 129h224"></path></g><path d="M352.0 129a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M108.0 149h20"></path><g><path d="M128.0 149h0.0"></path><path d="M352.0 149h0.0"></path><path d="M128.0 149h10"></path><g><path d="M138.0 149h0.0"></path><path d="M342.0 149h0.0"></path><path d="M138.0 149h20"></path><g><path d="M158.0 149h0.0"></path><path d="M322.0 149h0.0"></path><rect height="22" width="164" x="158.0" y="138"></rect><text x="240.0" y="153"></text></g><path d="M322.0 149h20"></path><path d="M138.0 149a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M158.0 179h48.0"></path><path d="M274.0 179h48.0"></path><rect height="22" width="68" x="206.0" y="168"></rect><text x="240.0" y="183"></text></g><path d="M322.0 179a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M138.0 149a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M158.0 209h10.0"></path><path d="M312.0 209h10.0"></path><path d="M168.0 209h10"></path><g><path d="M178.0 209h0.0"></path><path d="M206.0 209h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="178.0" y="198"></rect><text x="192.0" y="213"></text></g><path d="M206.0 209h10"></path><path d="M216.0 209h10"></path><g><path d="M226.0 209h0.0"></path><path d="M302.0 209h0.0"></path><rect height="22" width="76" x="226.0" y="198"></rect><text x="264.0" y="213"></text></g><path d="M302.0 209h10"></path></g><path d="M322.0 209a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path></g><path d="M342.0 149h10"></path><path d="M138.0 149a10 10 0 0 0 -10 10v59a10 10 0 0 0 10 10"></path><g><path d="M138.0 228h204"></path></g><path d="M342.0 228a10 10 0 0 0 10 -10v-59a10 10 0 0 0 -10 -10"></path></g><path d="M352.0 149h20"></path></g><path d="M372.0 149h10"></path><g><path d="M382.0 149h0.0"></path><path d="M410.0 149h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="382.0" y="138"></rect><text x="396.0" y="153"></text></g><path d="M410.0 149h10"></path></g><path d="M420.0 149a10 10 0 0 0 10 -10v-88a10 10 0 0 1 10 -10"></path></g><path d="M 440 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="url-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#url-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="102" viewbox="0 0 709 102" width="709">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0.0"></path><path d="M222.0 41h0.0"></path><rect height="22" width="172" x="50.0" y="30"></rect><text x="136.0" y="45"></text></g><path d="M222 41h10"></path><path d="M232 41h10"></path><g><path d="M242 41h0.0"></path><path d="M270.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="242.0" y="30"></rect><text x="256.0" y="45"></text></g><path d="M270 41h10"></path><path d="M280 41h10"></path><g><path d="M290 41h0.0"></path><path d="M334.0 41h0.0"></path><rect height="22" width="44" x="290.0" y="30"></rect><text x="312.0" y="45"></text></g><path d="M334 41h10"></path><g><path d="M344 41h0.0"></path><path d="M620.0 41h0.0"></path><path d="M344.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M364.0 21h236"></path></g><path d="M600.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M344.0 41h20"></path><g><path d="M364.0 41h0.0"></path><path d="M600.0 41h0.0"></path><g><path d="M364.0 41h0.0"></path><path d="M536.0 41h0.0"></path><path d="M364.0 41h20"></path><g><path d="M384.0 41h8.0"></path><path d="M508.0 41h8.0"></path><rect height="22" width="116" x="392.0" y="30"></rect><text x="450.0" y="45"></text></g><path d="M516.0 41h20"></path><path d="M364.0 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M384.0 71h0.0"></path><path d="M516.0 71h0.0"></path><rect height="22" width="132" x="384.0" y="60"></rect><text x="450.0" y="75"></text></g><path d="M516.0 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M536.0 41h10"></path><g><path d="M546.0 41h0.0"></path><path d="M590.0 41h0.0"></path><rect height="22" width="44" x="546.0" y="30"></rect><text x="568.0" y="45"></text></g><path d="M590.0 41h10"></path></g><path d="M600.0 41h20"></path></g><path d="M620 41h10"></path><g><path d="M630 41h0.0"></path><path d="M658.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="630.0" y="30"></rect><text x="644.0" y="45"></text></g><path d="M658 41h10"></path><path d="M 668 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="url-unquoted-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#url-unquoted-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>url-unquoted</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="100" viewbox="0 0 509 100" width="509">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M458.0 31h0.0"></path><path d="M50.0 31h10"></path><g><path d="M60.0 31h0.0"></path><path d="M448.0 31h0.0"></path><path d="M60.0 31h20"></path><g><path d="M80.0 31h0.0"></path><path d="M428.0 31h0.0"></path><rect height="22" width="348" x="80.0" y="20"></rect><text x="254.0" y="35"></text></g><path d="M428.0 31h20"></path><path d="M60.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M80.0 61h140.0"></path><path d="M288.0 61h140.0"></path><rect height="22" width="68" x="220.0" y="50"></rect><text x="254.0" y="65"></text></g><path d="M428.0 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M448.0 31h10"></path><path d="M60.0 31a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M60.0 80h388"></path></g><path d="M448.0 80a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M458 31h10"></path><path d="M 468 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="number-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#number-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-number-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;number-token&gt;">&lt;number-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="179" viewbox="0 0 713 179" width="713">
                <g transform="translate(.5 .5)"><path d="M 20 50 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 60h0.0"></path><path d="M108.0 60h0.0"></path><path d="M40.0 60a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M60.0 40h0.0"></path><path d="M88.0 40h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="60.0" y="29"></rect><text x="74.0" y="44"></text></g><path d="M88.0 40a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M40.0 60h20"></path><g><path d="M60.0 60h28"></path></g><path d="M88.0 60h20"></path><path d="M40.0 60a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M60.0 80h0.0"></path><path d="M88.0 80h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="60.0" y="69"></rect><text x="74.0" y="84"></text></g><path d="M88.0 80a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><g><path d="M108 60h0.0"></path><path d="M396.0 60h0.0"></path><path d="M108.0 60h20"></path><g><path d="M128.0 60h0.0"></path><path d="M376.0 60h0.0"></path><path d="M128.0 60h10"></path><g><path d="M138.0 60h0.0"></path><path d="M218.0 60h0.0"></path><path d="M138.0 60h10"></path><g><path d="M148.0 60h0.0"></path><path d="M208.0 60h0.0"></path><rect height="22" width="60" x="148.0" y="49"></rect><text x="178.0" y="64"></text></g><path d="M208.0 60h10"></path><path d="M148.0 60a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M148.0 80h60"></path></g><path d="M208.0 80a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M218.0 60h10"></path><path d="M228.0 60h10"></path><g><path d="M238.0 60h0.0"></path><path d="M266.0 60h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="238.0" y="49"></rect><text x="252.0" y="64"></text></g><path d="M266.0 60h10"></path><path d="M276.0 60h10"></path><g><path d="M286.0 60h0.0"></path><path d="M366.0 60h0.0"></path><path d="M286.0 60h10"></path><g><path d="M296.0 60h0.0"></path><path d="M356.0 60h0.0"></path><rect height="22" width="60" x="296.0" y="49"></rect><text x="326.0" y="64"></text></g><path d="M356.0 60h10"></path><path d="M296.0 60a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M296.0 80h60"></path></g><path d="M356.0 80a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M366.0 60h10"></path></g><path d="M376.0 60h20"></path><path d="M108.0 60a10 10 0 0 1 10 10v19a10 10 0 0 0 10 10"></path><g><path d="M128.0 99h84.0"></path><path d="M292.0 99h84.0"></path><path d="M212.0 99h10"></path><g><path d="M222.0 99h0.0"></path><path d="M282.0 99h0.0"></path><rect height="22" width="60" x="222.0" y="88"></rect><text x="252.0" y="103"></text></g><path d="M282.0 99h10"></path><path d="M222.0 99a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M222.0 119h60"></path></g><path d="M282.0 119a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M376.0 99a10 10 0 0 0 10 -10v-19a10 10 0 0 1 10 -10"></path><path d="M108.0 60a10 10 0 0 1 10 10v58a10 10 0 0 0 10 10"></path><g><path d="M128.0 138h50.0"></path><path d="M326.0 138h50.0"></path><path d="M178.0 138h10"></path><g><path d="M188.0 138h0.0"></path><path d="M216.0 138h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="188.0" y="127"></rect><text x="202.0" y="142"></text></g><path d="M216.0 138h10"></path><path d="M226.0 138h10"></path><g><path d="M236.0 138h0.0"></path><path d="M316.0 138h0.0"></path><path d="M236.0 138h10"></path><g><path d="M246.0 138h0.0"></path><path d="M306.0 138h0.0"></path><rect height="22" width="60" x="246.0" y="127"></rect><text x="276.0" y="142"></text></g><path d="M306.0 138h10"></path><path d="M246.0 138a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M246.0 158h60"></path></g><path d="M306.0 158a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M316.0 138h10"></path></g><path d="M376.0 138a10 10 0 0 0 10 -10v-58a10 10 0 0 1 10 -10"></path></g><g><path d="M396 60h0.0"></path><path d="M672.0 60h0.0"></path><path d="M396.0 60h20"></path><g><path d="M416.0 60h236"></path></g><path d="M652.0 60h20"></path><path d="M396.0 60a10 10 0 0 1 10 10v28a10 10 0 0 0 10 10"></path><g><path d="M416.0 108h0.0"></path><path d="M652.0 108h0.0"></path><g><path d="M416.0 108h0.0"></path><path d="M484.0 108h0.0"></path><path d="M416.0 108h20"></path><g><path d="M436.0 108h0.0"></path><path d="M464.0 108h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="436.0" y="97"></rect><text x="450.0" y="112"></text></g><path d="M464.0 108h20"></path><path d="M416.0 108a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M436.0 138h0.0"></path><path d="M464.0 138h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="436.0" y="127"></rect><text x="450.0" y="142"></text></g><path d="M464.0 138a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><g><path d="M484.0 108h0.0"></path><path d="M552.0 108h0.0"></path><path d="M484.0 108a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M504.0 88h0.0"></path><path d="M532.0 88h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="504.0" y="77"></rect><text x="518.0" y="92"></text></g><path d="M532.0 88a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M484.0 108h20"></path><g><path d="M504.0 108h28"></path></g><path d="M532.0 108h20"></path><path d="M484.0 108a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M504.0 128h0.0"></path><path d="M532.0 128h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="504.0" y="117"></rect><text x="518.0" y="132"></text></g><path d="M532.0 128a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><path d="M552.0 108h10"></path><g><path d="M562.0 108h0.0"></path><path d="M642.0 108h0.0"></path><path d="M562.0 108h10"></path><g><path d="M572.0 108h0.0"></path><path d="M632.0 108h0.0"></path><rect height="22" width="60" x="572.0" y="97"></rect><text x="602.0" y="112"></text></g><path d="M632.0 108h10"></path><path d="M572.0 108a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M572.0 128h60"></path></g><path d="M632.0 128a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M642.0 108h10"></path></g><path d="M652.0 108a10 10 0 0 0 10 -10v-28a10 10 0 0 1 10 -10"></path></g><path d="M 672 60 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="dimension-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#dimension-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 377 62" width="377">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M182.0 31h0.0"></path><rect height="22" width="132" x="50.0" y="20"></rect><text x="116.0" y="35"></text></g><path d="M182 31h10"></path><path d="M192 31h10"></path><g><path d="M202 31h0.0"></path><path d="M326.0 31h0.0"></path><rect height="22" width="124" x="202.0" y="20"></rect><text x="264.0" y="35"></text></g><path d="M326 31h10"></path><path d="M 336 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="percentage-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#percentage-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-percentage-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;percentage-token&gt;">&lt;percentage-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 281 62" width="281">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M182.0 31h0.0"></path><rect height="22" width="132" x="50.0" y="20"></rect><text x="116.0" y="35"></text></g><path d="M182 31h10"></path><path d="M192 31h10"></path><g><path d="M202 31h0.0"></path><path d="M230.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="202.0" y="20"></rect><text x="216.0" y="35"></text></g><path d="M230 31h10"></path><path d="M 240 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="unicode-range-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#unicode-range-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-unicode-range-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;unicode-range-token&gt;">&lt;unicode-range-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="222" viewbox="0 0 600 222" width="600">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 31h0.0"></path><path d="M108.0 31h0.0"></path><path d="M40.0 31h20"></path><g><path d="M60.0 31h0.0"></path><path d="M88.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="60.0" y="20"></rect><text x="74.0" y="35"></text></g><path d="M88.0 31h20"></path><path d="M40.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60.0 61h0.0"></path><path d="M88.0 61h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="60.0" y="50"></rect><text x="74.0" y="65"></text></g><path d="M88.0 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M108 31h10"></path><g><path d="M118 31h0.0"></path><path d="M146.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="118.0" y="20"></rect><text x="132.0" y="35"></text></g><path d="M146 31h10"></path><g><path d="M156 31h0.0"></path><path d="M559.0 31h0.0"></path><path d="M156.0 31h20"></path><g><path d="M176.0 31h125.5"></path><path d="M413.5 31h125.5"></path><path d="M301.5 31h10"></path><g><path d="M311.5 31h0.0"></path><path d="M403.5 31h0.0"></path><rect height="22" width="92" x="311.5" y="20"></rect><text x="357.5" y="35"></text></g><path d="M403.5 31h10"></path><path d="M311.5 31a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M311.5 61h9.5"></path><path d="M394.0 61h9.5"></path><text class="comment" x="357.5" y="66"></text></g><path d="M403.5 61a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M539.0 31h20"></path><path d="M156.0 31a10 10 0 0 1 10 10v50a10 10 0 0 0 10 10"></path><g><path d="M176.0 101h0.0"></path><path d="M539.0 101h0.0"></path><g><path d="M176.0 101h0.0"></path><path d="M328.0 101h0.0"></path><path d="M176.0 101a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M196.0 81h112"></path></g><path d="M308.0 81a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M176.0 101h20"></path><g><path d="M196.0 101h0.0"></path><path d="M308.0 101h0.0"></path><path d="M196.0 101h10"></path><g><path d="M206.0 101h0.0"></path><path d="M298.0 101h0.0"></path><rect height="22" width="92" x="206.0" y="90"></rect><text x="252.0" y="105"></text></g><path d="M298.0 101h10"></path><path d="M206.0 101a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M206.0 131h9.5"></path><path d="M288.5 131h9.5"></path><text class="comment" x="252.0" y="136"></text></g><path d="M298.0 131a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M308.0 101h20"></path></g><path d="M328.0 101h10"></path><g><path d="M338.0 101h0.0"></path><path d="M529.0 101h0.0"></path><path d="M338.0 101h10"></path><g><path d="M348.0 101h71.5"></path><path d="M447.5 101h71.5"></path><rect height="22" rx="10" ry="10" width="28" x="419.5" y="90"></rect><text x="433.5" y="105"></text></g><path d="M519.0 101h10"></path><path d="M348.0 101a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M348.0 131h0.0"></path><path d="M519.0 131h0.0"></path><text class="comment" x="433.5" y="136"></text></g><path d="M519.0 131a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M529.0 101h10"></path></g><path d="M539.0 101a10 10 0 0 0 10 -10v-50a10 10 0 0 1 10 -10"></path><path d="M156.0 31a10 10 0 0 1 10 10v120a10 10 0 0 0 10 10"></path><g><path d="M176.0 171h25.5"></path><path d="M513.5 171h25.5"></path><path d="M201.5 171h10"></path><g><path d="M211.5 171h0.0"></path><path d="M323.5 171h0.0"></path><path d="M211.5 171h10"></path><g><path d="M221.5 171h0.0"></path><path d="M313.5 171h0.0"></path><rect height="22" width="92" x="221.5" y="160"></rect><text x="267.5" y="175"></text></g><path d="M313.5 171h10"></path><path d="M221.5 171a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M221.5 201h9.5"></path><path d="M304.0 201h9.5"></path><text class="comment" x="267.5" y="206"></text></g><path d="M313.5 201a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M323.5 171h10"></path><path d="M333.5 171h10"></path><g><path d="M343.5 171h0.0"></path><path d="M371.5 171h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="343.5" y="160"></rect><text x="357.5" y="175"></text></g><path d="M371.5 171h10"></path><path d="M381.5 171h10"></path><g><path d="M391.5 171h0.0"></path><path d="M503.5 171h0.0"></path><path d="M391.5 171h10"></path><g><path d="M401.5 171h0.0"></path><path d="M493.5 171h0.0"></path><rect height="22" width="92" x="401.5" y="160"></rect><text x="447.5" y="175"></text></g><path d="M493.5 171h10"></path><path d="M401.5 171a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M401.5 201h9.5"></path><path d="M484.0 201h9.5"></path><text class="comment" x="447.5" y="206"></text></g><path d="M493.5 201a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M503.5 171h10"></path></g><path d="M539.0 171a10 10 0 0 0 10 -10v-120a10 10 0 0 1 10 -10"></path></g><path d="M 559 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="include-match-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#include-match-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-include-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;include-match-token&gt;">&lt;include-match-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 137 62" width="137">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M86.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="36" x="50.0" y="20"></rect><text x="68.0" y="35"></text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="dash-match-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#dash-match-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-dash-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dash-match-token&gt;">&lt;dash-match-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 137 62" width="137">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M86.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="36" x="50.0" y="20"></rect><text x="68.0" y="35"></text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="prefix-match-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#prefix-match-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-prefix-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;prefix-match-token&gt;">&lt;prefix-match-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 137 62" width="137">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M86.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="36" x="50.0" y="20"></rect><text x="68.0" y="35"></text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="suffix-match-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#suffix-match-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-suffix-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;suffix-match-token&gt;">&lt;suffix-match-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 137 62" width="137">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M86.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="36" x="50.0" y="20"></rect><text x="68.0" y="35"></text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="substring-match-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#substring-match-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-substring-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;substring-match-token&gt;">&lt;substring-match-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 137 62" width="137">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M86.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="36" x="50.0" y="20"></rect><text x="68.0" y="35"></text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="column-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#column-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-column-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;column-token&gt;">&lt;column-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 137 62" width="137">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M86.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="36" x="50.0" y="20"></rect><text x="68.0" y="35"></text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="CDO-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#CDO-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-cdo-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;cdo-token&gt;">&lt;CDO-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 153 62" width="153">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M102.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="52" x="50.0" y="20"></rect><text x="76.0" y="35"></text></g><path d="M102 31h10"></path><path d="M 112 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="CDC-token-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#CDC-token-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a><a class="production css-code" data-link-type="type" href="#typedef-cdc-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;cdc-token&gt;">&lt;CDC-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 145 62" width="145">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M94.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="44" x="50.0" y="20"></rect><text x="72.0" y="35"></text></g><path d="M94 31h10"></path><path d="M 104 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
</dl>
<h3 id="tokenizer-definitions" class="heading settled heading" data-level="4.2" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">4.2.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Definitions</span><a class="self-link" href="#tokenizer-definitions" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section defines several terms used during the tokenization phase.</p>
<dl data-export="" style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="code-point" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">code point<a class="self-link" href="#code-point" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a href="http://unicode.org/glossary/#code_point" style="color: inherit; text-decoration: underline; background: transparent;">Unicode code point</a>.<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="normative" data-link-type="biblio" href="#unicode" style="color: inherit; text-decoration: underline; background: transparent;" title="unicode">[UNICODE]</a><span class="Apple-converted-space">&nbsp;</span>Any value in the Unicode codespace; that is, the range of integers from 0 to (hexadecimal) 10FFFF.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="next-input-code-point" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">next input code point<a class="self-link" href="#next-input-code-point" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">The first<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>in the input stream that has not yet been consumed.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="current-input-code-point" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">current input code point<a class="self-link" href="#current-input-code-point" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">The last<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>to have been consumed.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="reconsume-the-current-input-code-point" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">reconsume the current input code point<a class="self-link" href="#reconsume-the-current-input-code-point" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">Push the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a><span class="Apple-converted-space">&nbsp;</span>back onto the front of the input stream, so that the next time you are instructed to consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a>, it will instead reconsume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current 
        input code point</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="eof-code-point" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">EOF code point<a class="self-link" href="#eof-code-point" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A conceptual<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>representing the end of the input stream. Whenever the input stream is empty, the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is always an EOF code point.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="digit" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">digit<a class="self-link" href="#digit" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>between U+0030 DIGIT ZERO (0) and U+0039 DIGIT NINE (9).</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="hex-digit" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">hex digit<a class="self-link" href="#hex-digit" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a>, or a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>between U+0041 LATIN CAPITAL LETTER A (A) and U+0046 LATIN CAPITAL LETTER F (F), or a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>between U+0061 LATIN SMALL LETTER A (a) and U+0066 LATIN SMALL LETTER F (f).</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="uppercase-letter" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">uppercase letter<a class="self-link" href="#uppercase-letter" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>between U+0041 LATIN CAPITAL LETTER A (A) and U+005A LATIN CAPITAL LETTER Z (Z).</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="lowercase-letter" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">lowercase letter<a class="self-link" href="#lowercase-letter" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>between U+0061 LATIN SMALL LETTER A (a) and U+007A LATIN SMALL LETTER Z (z).</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="letter" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">letter<a class="self-link" href="#letter" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">An<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#uppercase-letter" style="color: inherit; text-decoration: underline; background: transparent;" title="uppercase letter">uppercase letter</a><span class="Apple-converted-space">&nbsp;</span>or a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#lowercase-letter" style="color: inherit; text-decoration: underline; background: transparent;" title="lowercase letter">lowercase letter</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="non-ascii-code-point" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">non-ASCII code point<a class="self-link" href="#non-ascii-code-point" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>with a value equal to or greater than U+0080 &lt;control&gt;.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="name-start-code-point" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">name-start code point<a class="self-link" href="#name-start-code-point" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#letter" style="color: inherit; text-decoration: underline; background: transparent;" title="letter">letter</a>, a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#non-ascii-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="non-ascii code point">non-ASCII code point</a>, or U+005F LOW LINE (_).</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="name-code-point" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">name code point<a class="self-link" href="#name-code-point" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#name-start-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="name-start code point">name-start code point</a>, A<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a>, or U+002D HYPHEN-MINUS (-).</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="non-printable-code-point" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">non-printable code point<a class="self-link" href="#non-printable-code-point" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>between U+0000 NULL and U+0008 BACKSPACE, or U+000B LINE TABULATION, or a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>between U+000E SHIFT OUT and U+001F INFORMATION SEPARATOR ONE, or U+007F DELETE.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="newline" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">newline<a class="self-link" href="#newline" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">U+000A LINE FEED.<span class="Apple-converted-space">&nbsp;</span><span class="note" style="position: relative; padding: 0.1em 0.5em 0.15em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; border-right-width: 0.5em; border-right-style: solid; background: rgb(233, 251, 233);">Note that U+000D CARRIAGE RETURN and U+000C FORM FEED are not included in this definition, as they are converted to U+000A LINE FEED during<span class="Apple-converted-space">&nbsp;</span><a href="#input-preprocessing" style="color: inherit; text-decoration: underline; background: transparent;">preprocessing</a>.</span></dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="whitespace" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">whitespace<a class="self-link" href="#whitespace" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#newline" style="color: inherit; text-decoration: underline; background: transparent;" title="newline">newline</a>, U+0009 CHARACTER TABULATION, or U+0020 SPACE.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="surrogate-code-point" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">surrogate code point<a class="self-link" href="#surrogate-code-point" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>between U+D800 and U+DFFF inclusive.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="maximum-allowed-code-point" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">maximum allowed code point<a class="self-link" href="#maximum-allowed-code-point" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">The greatest<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>defined by Unicode: U+10FFFF.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="identifier" data-dfn-type="dfn" data-export="" style="font-weight: bolder;">identifier<a class="self-link" href="#identifier" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A portion of the CSS source that has the same syntax as an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a>. Also appears in<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-function-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;function-token&gt;">&lt;function-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-hash-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;hash-token&gt;">&lt;hash-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with 
        the &quot;id&quot; type flag, and the unit of<a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a>.</dd>
</dl>
<h3 id="tokenizer-algorithms" class="heading settled heading" data-level="4.3" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">4.3.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Tokenizer Algorithms</span><a class="self-link" href="#tokenizer-algorithms" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The algorithms defined in this section transform a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>into a stream of tokens.</p>
<h4 id="consume-a-token" class="heading settled heading" data-level="4.3.1" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.1.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-token0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a token</a><a class="self-link" href="#consume-a-token" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-token0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a token<a class="self-link" href="#consume-a-token0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>from a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>. It will return a single token of any type.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a>.</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#whitespace" style="color: inherit; text-decoration: underline; background: transparent;" title="whitespace">whitespace</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Consume as much<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#whitespace" style="color: inherit; text-decoration: underline; background: transparent;" title="whitespace">whitespace</a><span class="Apple-converted-space">&nbsp;</span>as possible. Return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0022 QUOTATION MARK (&quot;)</dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#consume-a-string-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a string token">Consume a string token</a><span class="Apple-converted-space">&nbsp;</span>with the ending<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>U+0022 QUOTATION MARK (&quot;) and return it.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0023 NUMBER SIGN (#)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#name-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="name code point">name code point</a><span class="Apple-converted-space">&nbsp;</span>or the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next two input code points</a><span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; background: transparent;" title="are a valid escape">are 
        a valid escape</a>, then:<ol style="margin-left: 0px; padding-left: 2em;">
            <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-hash-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;hash-token&gt;">&lt;hash-token&gt;</a>.</li>
            <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next 3 input code points</a><span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-three-code-points-would-start-an-identifier" style="color: inherit; text-decoration: underline; background: transparent;" title="would start an identifier">would start an identifier</a>, set the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-hash-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;hash-token&gt;">&lt;hash-token&gt;</a>’s type flag to &quot;id&quot;.</li>
            <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#consume-a-name0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a name">Consume a name</a>, and set the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-hash-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;hash-token&gt;">&lt;hash-token&gt;</a>’s value to the returned string.</li>
            <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Return the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-hash-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;hash-token&gt;">&lt;hash-token&gt;</a>.</li>
        </ol>
        <p style="margin-top: 1em; margin-bottom: 1em;">
            Otherwise, return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0024 DOLLAR SIGN ($)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+003D EQUALS SIGN (=), consume it and return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-suffix-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;suffix-match-token&gt;">&lt;suffix-match-token&gt;</a>.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, emit a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0027 APOSTROPHE (‘<code class="css" style="font-family: inherit; font-size: 16px; color: rgb(0, 90, 156);">)</code></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#consume-a-string-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a string token">Consume a string token</a><span class="Apple-converted-space">&nbsp;</span>with the ending<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>U+0027 APOSTROPHE (’) and return it.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0028 LEFT PARENTHESIS (()</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return a<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-paren" style="color: inherit; text-decoration: underline; background: transparent;">&lt;(-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0029 RIGHT PARENTHESIS ())</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return a<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-paren" style="color: inherit; text-decoration: underline; background: transparent;">&lt;)-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+002A ASTERISK (*)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+003D EQUALS SIGN (=), consume it and return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-substring-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;substring-match-token&gt;">&lt;substring-match-token&gt;</a>.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+002B PLUS SIGN (+)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the input stream<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-three-code-points-would-start-a-number" style="color: inherit; text-decoration: underline; background: transparent;" title="starts with a number">starts with a number</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#reconsume-the-current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input code point">reconsume the current input code point</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-numeric-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a numeric token">consume a numeric token</a><span class="Apple-converted-space">&nbsp;</span>and return it.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+002C COMMA (,)</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-comma-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;comma-token&gt;">&lt;comma-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+002D HYPHEN-MINUS (-)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the input stream<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-three-code-points-would-start-a-number" style="color: inherit; text-decoration: underline; background: transparent;" title="starts with a number">starts with a number</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#reconsume-the-current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input code point">reconsume the current input code point</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-numeric-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a numeric token">consume a numeric token</a>, and return it.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, if the input stream<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-three-code-points-would-start-an-identifier" style="color: inherit; text-decoration: underline; background: transparent;" title="starts with an identifier">starts with an identifier</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#reconsume-the-current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input code point">reconsume the current input code point</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-an-ident-like-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume an ident-like token">consume an ident-like token</a>, and return it.</p>
        <p style="margin-top: 1em; margin-bottom: 1em;">
            Otherwise, if the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next 2 input code points</a><span class="Apple-converted-space">&nbsp;</span>are U+002D HYPHEN-MINUS U+003E GREATER-THAN SIGN (-&gt;), consume them and return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-cdc-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;cdc-token&gt;">&lt;CDC-token&gt;</a>.</p>
        <p style="margin-top: 1em; margin-bottom: 1em;">
            Otherwise, return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+002E FULL STOP (.)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the input stream<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-three-code-points-would-start-a-number" style="color: inherit; text-decoration: underline; background: transparent;" title="starts with a number">starts with a number</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#reconsume-the-current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input code point">reconsume the current input code point</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-numeric-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a numeric token">consume a numeric token</a>, and return it.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+002F SOLIDUS (/)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+002A ASTERISK (*), consume it and all following<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>up to and including the first U+002A ASTERISK (*) followed by a U+002F SOLIDUS (/), or up to an EOF code point. Then<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a token">consume 
        a token</a><span class="Apple-converted-space">&nbsp;</span>and return it.<p style="margin-top: 1em; margin-bottom: 1em;">
            Otherwise, return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+003A COLON (:)</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-colon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;colon-token&gt;">&lt;colon-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+003B SEMICOLON (;)</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-semicolon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;semicolon-token&gt;">&lt;semicolon-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+003C LESS-THAN SIGN (&lt;)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next 3 input code points</a><span class="Apple-converted-space">&nbsp;</span>are U+0021 EXCLAMATION MARK U+002D HYPHEN-MINUS U+002D HYPHEN-MINUS (!--), consume them and return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-cdo-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;cdo-token&gt;">&lt;CDO-token&gt;</a>.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0040 COMMERCIAL AT (@)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next 3 input code points</a><span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-three-code-points-would-start-an-identifier" style="color: inherit; text-decoration: underline; background: transparent;" title="would start an identifier">would start an identifier</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-name0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a name">consume a name</a>, create an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with 
        its value set to the returned value, and return it.<p style="margin-top: 1em; margin-bottom: 1em;">
            Otherwise, return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+005B LEFT SQUARE BRACKET ([)</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return a<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-square" style="color: inherit; text-decoration: underline; background: transparent;">&lt;[-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+005C REVERSE SOLIDUS (\)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the input stream<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; background: transparent;" title="starts with a valid escape">starts with a valid escape</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#reconsume-the-current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input code point">reconsume the current input code point</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-an-ident-like-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume an ident-like token">consume an ident-like token</a>, and return it.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, this is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#parse-error" style="color: inherit; text-decoration: underline; background: transparent;" title="parse error">parse error</a>. Return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+005D RIGHT SQUARE BRACKET (])</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return a<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-square" style="color: inherit; text-decoration: underline; background: transparent;">&lt;]-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+005E CIRCUMFLEX ACCENT (^)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+003D EQUALS SIGN (=), consume it and return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-prefix-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;prefix-match-token&gt;">&lt;prefix-match-token&gt;</a>.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+007B LEFT CURLY BRACKET ({)</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return a<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;{-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+007D RIGHT CURLY BRACKET (})</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return a<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;}-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#reconsume-the-current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input code point">Reconsume the current input code point</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-numeric-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a numeric token">consume a numeric token</a>, and return it.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0055 LATIN CAPITAL LETTER U (U)</dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0075 LATIN SMALL LETTER U (u)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next 2 input code points</a><span class="Apple-converted-space">&nbsp;</span>are U+002B PLUS SIGN (+) followed by a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digit">hex digit</a><span class="Apple-converted-space">&nbsp;</span>or U+003F QUESTION MARK (?), consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a>.<span class="Apple-converted-space">&nbsp;</span><span class="note" style="position: relative; padding: 0.1em 0.5em 0.15em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; border-right-width: 0.5em; border-right-style: solid; background: rgb(233, 251, 233);">Note: 
        don’t consume both of them.</span><span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-unicode-range-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a unicode-range token">Consume a unicode-range token</a><span class="Apple-converted-space">&nbsp;</span>and return it.<p style="margin-top: 1em; margin-bottom: 1em;">
            Otherwise,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#reconsume-the-current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input code point">reconsume the current input code point</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-an-ident-like-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume an ident-like token">consume an ident-like token</a>, and return it.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#name-start-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="name-start code point">name-start code point</a></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#reconsume-the-current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input code point">Reconsume the current input code point</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-an-ident-like-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume an ident-like token">consume an ident-like token</a>, and return it.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+007C VERTICAL LINE (|)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+003D EQUALS SIGN (=), consume it and return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dash-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dash-match-token&gt;">&lt;dash-match-token&gt;</a>.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, if the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+0073 VERTICAL LINE (|), consume it and return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-column-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;column-token&gt;">&lt;column-token&gt;</a>.</p>
        <p style="margin-top: 1em; margin-bottom: 1em;">
            Otherwise, return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+007E TILDE (~)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+003D EQUALS SIGN (=), consume it and return an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-include-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;include-match-token&gt;">&lt;include-match-token&gt;</a>.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">EOF</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</dd>
</dl>
<h4 id="consume-a-numeric-token" class="heading settled heading" data-level="4.3.2" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.2.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-numeric-token0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a numeric token</a><a class="self-link" href="#consume-a-numeric-token" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-numeric-token0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a numeric token<a class="self-link" href="#consume-a-numeric-token0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>from a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>. It returns either a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-number-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;number-token&gt;">&lt;number-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-percentage-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;percentage-token&gt;">&lt;percentage-token&gt;</a>, 
    or<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <a data-link-type="dfn" href="#consume-a-number0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a number">Consume a number</a>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next 3 input code points</a><span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-three-code-points-would-start-an-identifier" style="color: inherit; text-decoration: underline; background: transparent;" title="would start an identifier">would start an identifier</a>, then:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with the same representation, value, and type flag as the returned number, and a unit set initially to the empty string.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#consume-a-name0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a name">Consume a name</a>. Set the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a>’s unit to the returned value.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Return the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a>.</li>
</ol>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Otherwise, if the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+0025 PERCENTAGE SIGN (%), consume it. Create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-percentage-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;percentage-token&gt;">&lt;percentage-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with the same representation and value as the returned number, and return it.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Otherwise, create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-number-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;number-token&gt;">&lt;number-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with the same representation, value, and type flag as the returned number, and return it.</p>
<h4 id="consume-an-ident-like-token" class="heading settled heading" data-level="4.3.3" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.3.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-an-ident-like-token0" style="color: inherit; text-decoration: underline; background: transparent;">Consume an ident-like token</a><a class="self-link" href="#consume-an-ident-like-token" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-an-ident-like-token0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume an ident-like token<a class="self-link" href="#consume-an-ident-like-token0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>from a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>. It returns an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-function-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;function-token&gt;">&lt;function-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a>, 
    or<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <a data-link-type="dfn" href="#consume-a-name0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a name">Consume a name</a>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    If the returned string’s value is an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#ascii-case-insensitive" style="color: inherit; text-decoration: underline; background: transparent;" title="ascii case-insensitive">ASCII case-insensitive</a><span class="Apple-converted-space">&nbsp;</span>match for &quot;url&quot;, and the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+0028 LEFT PARENTHESIS ((), consume it.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-url-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a url token">Consume a url token</a>, and return it.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Otherwise, if the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+0028 LEFT PARENTHESIS ((), consume it. Create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-function-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;function-token&gt;">&lt;function-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the returned string and return it.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Otherwise, create an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the returned string and return it.</p>
<h4 id="consume-a-string-token" class="heading settled heading" data-level="4.3.4" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.4.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-string-token0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a string token</a><a class="self-link" href="#consume-a-string-token" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-string-token0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a string token<a class="self-link" href="#consume-a-string-token0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>from a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>. It returns either a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;string-token&gt;">&lt;string-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>or<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-string-token&gt;">&lt;bad-string-token&gt;</a>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This algorithm must be called with an<span class="Apple-converted-space">&nbsp;</span><var>ending code point</var>, which denotes the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>that ends the string.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Initially create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;string-token&gt;">&lt;string-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the empty string.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Repeatedly consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>from the stream:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">
        <var>
        ending code point</var></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">EOF</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;string-token&gt;">&lt;string-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#newline" style="color: inherit; text-decoration: underline; background: transparent;" title="newline">newline</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">This is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#parse-error" style="color: inherit; text-decoration: underline; background: transparent;" title="parse error">parse error</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#reconsume-the-current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input code point">Reconsume the current input code point</a>, create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-string-token&gt;">&lt;bad-string-token&gt;</a>, and return it.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+005C REVERSE SOLIDUS (\)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is EOF, do nothing.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, if the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is a newline, consume it.</p>
        <p style="margin-top: 1em; margin-bottom: 1em;">
            Otherwise, if the stream<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; background: transparent;" title="starts with a valid escape">starts with a valid escape</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-an-escaped-code-point0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume an escaped code point">consume an escaped code point</a><span class="Apple-converted-space">&nbsp;</span>and append the returned<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>to the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;string-token&gt;">&lt;string-token&gt;</a>’s 
            value.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;">Append the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a><span class="Apple-converted-space">&nbsp;</span>to the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;string-token&gt;">&lt;string-token&gt;</a>’s value.</dd>
</dl>
<h4 id="consume-a-url-token" class="heading settled heading" data-level="4.3.5" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.5.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-url-token0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a url token</a><a class="self-link" href="#consume-a-url-token" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-url-token0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a url token<a class="self-link" href="#consume-a-url-token0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>from a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>. It returns either a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>or 
    a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a>.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: This algorithm assumes that the initial &quot;url(&quot; has already been consumed.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Execute the following steps in order:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Initially create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with its value set to the empty string.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Consume as much<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#whitespace" style="color: inherit; text-decoration: underline; background: transparent;" title="whitespace">whitespace</a><span class="Apple-converted-space">&nbsp;</span>as possible.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is EOF, return the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is a U+0022 QUOTATION MARK (&quot;) or U+0027 APOSTROPHE (‘<code class="css" style="font-family: inherit; font-size: 16px; color: rgb(0, 90, 156);">), then:</code><ol style="margin-left: 0px; padding-left: 2em;">
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#consume-a-string-token0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a string token">Consume a string token</a><span class="Apple-converted-space">&nbsp;</span>with the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a><span class="Apple-converted-space">&nbsp;</span>as the ending code point.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-string-token&gt;">&lt;bad-string-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>was returned,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-remnants-of-a-bad-url0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the remnants of a bad url">consume the remnants of a bad url</a>, create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a>, 
            and return it.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Set the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a>’s value to the returned<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;string-token&gt;">&lt;string-token&gt;</a>’s value.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Consume as much<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#whitespace" style="color: inherit; text-decoration: underline; background: transparent;" title="whitespace">whitespace</a><span class="Apple-converted-space">&nbsp;</span>as possible.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+0029 RIGHT PARENTHESIS ()) or EOF, consume it and return the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a>; otherwise,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-remnants-of-a-bad-url0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the remnants of a bad url">consume 
            the remnants of a bad url</a>, create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a>, and return it.</li>
        </ol>
    </li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Repeatedly consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>from the stream:<dl>
        <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0029 RIGHT PARENTHESIS ())</dt>
        <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">EOF</dt>
        <dd style="margin: 0px 0px 1em 2em;">Return the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a>.</dd>
        <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#whitespace" style="color: inherit; text-decoration: underline; background: transparent;" title="whitespace">whitespace</a></dt>
        <dd style="margin: 0px 0px 1em 2em;">Consume as much<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#whitespace" style="color: inherit; text-decoration: underline; background: transparent;" title="whitespace">whitespace</a><span class="Apple-converted-space">&nbsp;</span>as possible. If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+0029 RIGHT PARENTHESIS ()) or EOF, consume it and return the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a>; 
            otherwise,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-remnants-of-a-bad-url0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the remnants of a bad url">consume the remnants of a bad url</a>, create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a>, and return it.</dd>
        <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0022 QUOTATION MARK (&quot;)</dt>
        <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0027 APOSTROPHE (’)</dt>
        <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0028 LEFT PARENTHESIS (()</dt>
        <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#non-printable-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="non-printable code point">non-printable code point</a></dt>
        <dd style="margin: 0px 0px 1em 2em;">This is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#parse-error" style="color: inherit; text-decoration: underline; background: transparent;" title="parse error">parse error</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-remnants-of-a-bad-url0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the remnants of a bad url">Consume the remnants of a bad url</a>, create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a>, and return it.</dd>
        <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+005C REVERSE SOLIDUS</dt>
        <dd style="margin: 0px 0px 1em 2em;">If the stream<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; background: transparent;" title="starts with a valid escape">starts with a valid escape</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-an-escaped-code-point0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume an escaped code point">consume an escaped code point</a><span class="Apple-converted-space">&nbsp;</span>and append the returned<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>to the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a>’s 
            value.<p style="margin-top: 1em; margin-bottom: 1em;">
                Otherwise, this is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#parse-error" style="color: inherit; text-decoration: underline; background: transparent;" title="parse error">parse error</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-remnants-of-a-bad-url0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the remnants of a bad url">Consume the remnants of a bad url</a>, create a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a>, and return it.</p>
        </dd>
        <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
        <dd style="margin: 0px 0px 1em 2em;">Append the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a><span class="Apple-converted-space">&nbsp;</span>to the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a>’s value.</dd>
        </dl>
    </li>
</ol>
<h4 id="consume-a-unicode-range-token" class="heading settled heading" data-level="4.3.6" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.6.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-unicode-range-token0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a unicode-range token</a><a class="self-link" href="#consume-a-unicode-range-token" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-unicode-range-token0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a unicode-range token<a class="self-link" href="#consume-a-unicode-range-token0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>. It returns a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-unicode-range-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;unicode-range-token&gt;">&lt;unicode-range-token&gt;</a>.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: This algorithm assumes that the initial &quot;u+&quot; has been consumed, and the next<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>verified to be a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digit">hex digit</a><span class="Apple-converted-space">&nbsp;</span>or a &quot;?&quot;.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Execute the following steps in order:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Consume as many<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digits">hex digits</a><span class="Apple-converted-space">&nbsp;</span>as possible, but no more than 6. If less than 6<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digits">hex digits</a><span class="Apple-converted-space">&nbsp;</span>were consumed, consume as many U+003F QUESTION MARK (?)<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>as 
        possible, but no more than enough to make the total of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digits">hex digits</a><span class="Apple-converted-space">&nbsp;</span>and U+003F QUESTION MARK (?)<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>equal to 6.<p style="margin-top: 1em; margin-bottom: 1em;">
            If any U+003F QUESTION MARK (?)<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>were consumed, then:</p>
        <ol style="margin-left: 0px; padding-left: 2em;">
            <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Interpret the consumed<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>as a hexadecimal number, with the U+003F QUESTION MARK (?)<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>replaced by U+0030 DIGIT ZERO (0)<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>. This is the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#unicode-range-start" style="color: inherit; text-decoration: underline; background: transparent;" title="start of the range">start 
                of the range</a>.</li>
            <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Interpret the consumed<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>as a hexadecimal number again, with the U+003F QUESTION MARK (?)<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>replaced by U+0046 LATIN CAPITAL LETTER F (F)<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>. This 
                is the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#unicode-range-end" style="color: inherit; text-decoration: underline; background: transparent;" title="end of the range">end of the range</a>.</li>
            <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Return a new<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-unicode-range-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;unicode-range-token&gt;">&lt;unicode-range-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with the above start and end.</li>
        </ol>
        <p style="margin-top: 1em; margin-bottom: 1em;">
            Otherwise, interpret the digits as a hexadecimal number. This is the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#unicode-range-start" style="color: inherit; text-decoration: underline; background: transparent;" title="start of the range">start of the range</a>.</p>
    </li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next 2 input code point</a><span class="Apple-converted-space">&nbsp;</span>are U+002D HYPHEN-MINUS (-) followed by a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digit">hex digit</a>, then:<ol style="margin-left: 0px; padding-left: 2em;">
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a>.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Consume as many<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digits">hex digits</a><span class="Apple-converted-space">&nbsp;</span>as possible, but no more than 6. Interpret the digits as a hexadecimal number. This is the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#unicode-range-end" style="color: inherit; text-decoration: underline; background: transparent;" title="end of the range">end of the range</a>.</li>
        </ol>
    </li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Otherwise, the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#unicode-range-end" style="color: inherit; text-decoration: underline; background: transparent;" title="end of the range">end of the range</a><span class="Apple-converted-space">&nbsp;</span>is the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#unicode-range-start" style="color: inherit; text-decoration: underline; background: transparent;" title="start of the range">start of the range</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Return the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-unicode-range-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;unicode-range-token&gt;">&lt;unicode-range-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with the above start and end.</li>
</ol>
<h4 id="consume-an-escaped-code-point" class="heading settled heading" data-level="4.3.7" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.7.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-an-escaped-code-point0" style="color: inherit; text-decoration: underline; background: transparent;">Consume an escaped code point</a><a class="self-link" href="#consume-an-escaped-code-point" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-an-escaped-code-point0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume an escaped code point<a class="self-link" href="#consume-an-escaped-code-point0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>. It assumes that the U+005C REVERSE SOLIDUS (\) has already been consumed and that the next input code point has already been verified to not be a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#newline" style="color: inherit; text-decoration: underline; background: transparent;" title="newline">newline</a>. 
    It will return a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a>.</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digit">hex digit</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Consume as many<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digits">hex digits</a><span class="Apple-converted-space">&nbsp;</span>as possible, but no more than 5.<span class="Apple-converted-space">&nbsp;</span><span class="note" style="position: relative; padding: 0.1em 0.5em 0.15em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; border-right-width: 0.5em; border-right-style: solid; background: rgb(233, 251, 233);">Note that this means 1-6 hex digits have been consumed in total.</span><span class="Apple-converted-space">&nbsp;</span>If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next 
        input code point</a><span class="Apple-converted-space">&nbsp;</span>is<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#whitespace" style="color: inherit; text-decoration: underline; background: transparent;" title="whitespace">whitespace</a>, consume it as well. Interpret the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#hex-digit" style="color: inherit; text-decoration: underline; background: transparent;" title="hex digits">hex digits</a><span class="Apple-converted-space">&nbsp;</span>as a hexadecimal number. If this number is zero, or is for a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#surrogate-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="surrogate code point">surrogate code point</a>, or is greater than the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#maximum-allowed-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="maximum allowed code point">maximum 
        allowed code point</a>, return U+FFFD REPLACEMENT CHARACTER (�). Otherwise, return the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>with that value.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">EOF code point</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return U+FFFD REPLACEMENT CHARACTER (�).</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a>.</dd>
</dl>
<h4 id="starts-with-a-valid-escape" class="heading settled heading" data-level="4.3.8" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.8.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; background: transparent;">Check if two code points are a valid escape</a><a class="self-link" href="#starts-with-a-valid-escape" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="check-if-two-code-points-are-a-valid-escape" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;" title="check if two code points are a valid escape|are a valid escape|starts with a valid escape">check if two code points are a valid escape<a class="self-link" href="#check-if-two-code-points-are-a-valid-escape" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>. The algorithm described here can be called explicitly with two<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code 
    points</a>, or can be called with the input stream itself. In the latter case, the two<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>in question are the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a><span class="Apple-converted-space">&nbsp;</span>and the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a>, in that order.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: This algorithm will not consume any additional<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    If the first<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>is not U+005D REVERSE SOLIDUS (\), return false.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Otherwise, if the second<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#newline" style="color: inherit; text-decoration: underline; background: transparent;" title="newline">newline</a>, return false.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Otherwise, return true.</p>
<h4 id="would-start-an-identifier" class="heading settled heading" data-level="4.3.9" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.9.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#check-if-three-code-points-would-start-an-identifier" style="color: inherit; text-decoration: underline; background: transparent;">Check if three code points would start an identifier</a><a class="self-link" href="#would-start-an-identifier" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="check-if-three-code-points-would-start-an-identifier" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;" title="check if three code points would start an identifier|starts with an identifier|start with an identifier|would start an identifier">check if three code points would start an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#identifier" style="color: inherit; text-decoration: underline; background: transparent;" title="identifier">identifier</a><a class="self-link" href="#check-if-three-code-points-would-start-an-identifier" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>. 
    The algorithm described here can be called explicitly with three<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>, or can be called with the input stream itself. In the latter case, the three<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>in question are the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a><span class="Apple-converted-space">&nbsp;</span>and the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next 
    two input code points</a>, in that order.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: This algorithm will not consume any additional<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Look at the first<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a>:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+002D HYPHEN-MINUS</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the second<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#name-start-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="name-start code point">name-start code point</a><span class="Apple-converted-space">&nbsp;</span>or the second and third<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; background: transparent;" title="are a valid escape">are 
        a valid escape</a>, return true. Otherwise, return false.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#name-start-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="name-start code point">name-start code point</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Return true.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+005C REVERSE SOLIDUS (\)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the first and second<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; background: transparent;" title="are a valid escape">are a valid escape</a>, return true. Otherwise, return false.</dd>
</dl>
<h4 id="starts-with-a-number" class="heading settled heading" data-level="4.3.10" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.10.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#check-if-three-code-points-would-start-a-number" style="color: inherit; text-decoration: underline; background: transparent;">Check if three code points would start a number</a><a class="self-link" href="#starts-with-a-number" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="check-if-three-code-points-would-start-a-number" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;" title="check if three code points would start a number|starts with a number|start with a number|would start a number">check if three code points would start a number<a class="self-link" href="#check-if-three-code-points-would-start-a-number" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>. The algorithm described here can be called explicitly with three<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code 
    points</a>, or can be called with the input stream itself. In the latter case, the three<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>in question are the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="current input code point">current input code point</a><span class="Apple-converted-space">&nbsp;</span>and the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next two input code points</a>, in that order.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: This algorithm will not consume any additional<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Look at the first<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a>:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+002B PLUS SIGN (+)</dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+002D HYPHEN-MINUS (-)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the second<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a>, return true.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, if the second<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>is a U+002E FULL STOP (.) and the third<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a>, return true.</p>
        <p style="margin-top: 1em; margin-bottom: 1em;">
            Otherwise, return false.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+002E FULL STOP (.)</dt>
    <dd style="margin: 0px 0px 1em 2em;">If the second<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a>, return true. Otherwise, return false.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Return true.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return false.</dd>
</dl>
<h4 id="consume-a-name" class="heading settled heading" data-level="4.3.11" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.11.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-name0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a name</a><a class="self-link" href="#consume-a-name" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-name0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a name<a class="self-link" href="#consume-a-name0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>from a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>. It returns a string containing the largest name that can be formed from adjacent<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code 
    points</a><span class="Apple-converted-space">&nbsp;</span>in the stream, starting from the first.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: This algorithm does not do the verification of the first few<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>that are necessary to ensure the returned<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>would constitute an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a>. If that is the intended use, ensure 
    that the stream<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-three-code-points-would-start-an-identifier" style="color: inherit; text-decoration: underline; background: transparent;" title="starts with an identifier">starts with an identifier</a><span class="Apple-converted-space">&nbsp;</span>before calling this algorithm.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Let<span class="Apple-converted-space">&nbsp;</span><var>result</var><span class="Apple-converted-space">&nbsp;</span>initially be an empty string.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Repeatedly consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>from the stream:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#name-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="name code point">name code point</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Append the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>to<span class="Apple-converted-space">&nbsp;</span><var>result</var>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">the stream<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; background: transparent;" title="starts with a valid escape">starts with a valid escape</a></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#consume-an-escaped-code-point0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume an escaped code point">Consume an escaped code point</a>. Append the returned<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>to<span class="Apple-converted-space">&nbsp;</span><var>result</var>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return<span class="Apple-converted-space">&nbsp;</span><var>result</var>.</dd>
</dl>
<h4 id="consume-a-number" class="heading settled heading" data-level="4.3.12" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.12.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-number0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a number</a><a class="self-link" href="#consume-a-number" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-number0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a number<a class="self-link" href="#consume-a-number0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>from a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>. It returns a 3-tuple of a string representation, a numeric value, and a type flag which is 
    either &quot;integer&quot; or &quot;number&quot;.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: This algorithm does not do the verification of the first few<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>that are necessary to ensure a number can be obtained from the stream. Ensure that the stream<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-three-code-points-would-start-a-number" style="color: inherit; text-decoration: underline; background: transparent;" title="starts with a number">starts with a number</a><span class="Apple-converted-space">&nbsp;</span>before calling this algorithm.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Execute the following steps in order:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Initially set<span class="Apple-converted-space">&nbsp;</span><var>repr</var><span class="Apple-converted-space">&nbsp;</span>to the empty string and<span class="Apple-converted-space">&nbsp;</span><var>type</var><span class="Apple-converted-space">&nbsp;</span>to &quot;integer&quot;.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is U+002B PLUS SIGN (+) or U+002D HYPHEN-MINUS (-), consume it and append it to<span class="Apple-converted-space">&nbsp;</span><var>repr</var>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">While the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a>, consume it and append it to<span class="Apple-converted-space">&nbsp;</span><var>repr</var>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next 2 input code points</a><span class="Apple-converted-space">&nbsp;</span>are U+002E FULL STOP (.) followed by a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a>, then:<ol style="margin-left: 0px; padding-left: 2em;">
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Consume them.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Append them to<span class="Apple-converted-space">&nbsp;</span><var>repr</var>.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Set<span class="Apple-converted-space">&nbsp;</span><var>type</var><span class="Apple-converted-space">&nbsp;</span>to &quot;number&quot;.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">While the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a>, consume it and append it to<span class="Apple-converted-space">&nbsp;</span><var>repr</var>.</li>
        </ol>
    </li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next 2 or 3 input code points</a><span class="Apple-converted-space">&nbsp;</span>are U+0045 LATIN CAPITAL LETTER E (E) or U+0065 LATIN SMALL LETTER E (e), optionally followed by U+002D HYPHEN-MINUS (-) or U+002B PLUS SIGN (+), followed by a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a>, then:<ol style="margin-left: 0px; padding-left: 2em;">
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Consume them.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Append them to<span class="Apple-converted-space">&nbsp;</span><var>repr</var>.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Set<span class="Apple-converted-space">&nbsp;</span><var>type</var><span class="Apple-converted-space">&nbsp;</span>to &quot;number&quot;.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">While the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a>, consume it and append it to<span class="Apple-converted-space">&nbsp;</span><var>repr</var>.</li>
        </ol>
    </li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#convert-a-string-to-a-number0" style="color: inherit; text-decoration: underline; background: transparent;" title="convert a string to a number">Convert<span class="Apple-converted-space">&nbsp;</span><var>repr</var><span class="Apple-converted-space">&nbsp;</span>to a number</a>, and set the<span class="Apple-converted-space">&nbsp;</span><var>value</var><span class="Apple-converted-space">&nbsp;</span>to the returned value.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Return a 3-tuple of<span class="Apple-converted-space">&nbsp;</span><var>repr</var>,<span class="Apple-converted-space">&nbsp;</span><var>value</var>, and<span class="Apple-converted-space">&nbsp;</span><var>type</var>.</li>
</ol>
<h4 id="convert-a-string-to-a-number" class="heading settled heading" data-level="4.3.13" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.13.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#convert-a-string-to-a-number0" style="color: inherit; text-decoration: underline; background: transparent;">Convert a string to a number</a><a class="self-link" href="#convert-a-string-to-a-number" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="convert-a-string-to-a-number0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">convert a string to a number<a class="self-link" href="#convert-a-string-to-a-number0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>. It returns a number.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: This algorithm does not do any verification to ensure that the string contains only a number. Ensure that the string contains only a valid CSS number before calling this algorithm.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Divide the string into seven components, in order from left to right:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">A<span class="Apple-converted-space">&nbsp;</span><b>sign</b>: a single U+002B PLUS SIGN (+) or U+002D HYPHEN-MINUS (-), or the empty string. Let<span class="Apple-converted-space">&nbsp;</span><var>s</var><span class="Apple-converted-space">&nbsp;</span>be the number -1 if the sign is U+002D HYPHEN-MINUS (-); otherwise, let<span class="Apple-converted-space">&nbsp;</span><var>s</var><span class="Apple-converted-space">&nbsp;</span>be the number 1.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">An<span class="Apple-converted-space">&nbsp;</span><b>integer part</b>: zero or more<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digits">digits</a>. If there is at least one digit, let<span class="Apple-converted-space">&nbsp;</span><var>i</var><span class="Apple-converted-space">&nbsp;</span>be the number formed by interpreting the digits as a base-10 integer; otherwise, let<span class="Apple-converted-space">&nbsp;</span><var>i</var><span class="Apple-converted-space">&nbsp;</span>be the number 0.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">A<span class="Apple-converted-space">&nbsp;</span><b>decimal point</b>: a single U+002E FULL STOP (.), or the empty string.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">A<span class="Apple-converted-space">&nbsp;</span><b>fractional part</b>: zero or more<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digits">digits</a>. If there is at least one digit, let<span class="Apple-converted-space">&nbsp;</span><var>f</var><span class="Apple-converted-space">&nbsp;</span>be the number formed by interpreting the digits as a base-10 integer and<span class="Apple-converted-space">&nbsp;</span><var>d</var><span class="Apple-converted-space">&nbsp;</span>be the number of digits; otherwise, let<span class="Apple-converted-space">&nbsp;</span><var>f</var><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><var>d</var><span class="Apple-converted-space">&nbsp;</span>be the number 0.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">An<span class="Apple-converted-space">&nbsp;</span><b>exponent indicator</b>: a single U+0045 LATIN CAPITAL LETTER E (E) or U+0065 LATIN SMALL LETTER E (e), or the empty string.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">An<span class="Apple-converted-space">&nbsp;</span><b>exponent sign</b>: a single U+002B PLUS SIGN (+) or U+002D HYPHEN-MINUS (-), or the empty string. Let<span class="Apple-converted-space">&nbsp;</span><var>t</var><span class="Apple-converted-space">&nbsp;</span>be the number -1 if the sign is U+002D HYPHEN-MINUS (-); otherwise, let<span class="Apple-converted-space">&nbsp;</span><var>t</var>be the number 1.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">An<span class="Apple-converted-space">&nbsp;</span><b>exponent</b>: zero or more<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digits">digits</a>. If there is at least one digit, let<span class="Apple-converted-space">&nbsp;</span><var>e</var><span class="Apple-converted-space">&nbsp;</span>be the number formed by interpreting the digits as a base-10 integer; otherwise, let<span class="Apple-converted-space">&nbsp;</span><var>e</var><span class="Apple-converted-space">&nbsp;</span>be the number 0.</li>
</ol>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Return the number<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">s·(i + f·10<sup style="vertical-align: super; font-size: 12px;">-d</sup>)·10<sup style="vertical-align: super; font-size: 12px;">te</sup></code>.</p>
<h4 id="consume-the-remnants-of-a-bad-url" class="heading settled heading" data-level="4.3.14" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">4.3.14.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-the-remnants-of-a-bad-url0" style="color: inherit; text-decoration: underline; background: transparent;">Consume the remnants of a bad url</a><a class="self-link" href="#consume-the-remnants-of-a-bad-url" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section describes how to<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-the-remnants-of-a-bad-url0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume the remnants of a bad url<a class="self-link" href="#consume-the-remnants-of-a-bad-url0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>from a stream of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a>, &quot;cleaning up&quot; after the tokenizer realizes 
    that it’s in the middle of a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a>rather than a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a>. It returns nothing; its sole use is to consume enough of the input stream to reach a recovery point where normal tokenizing can resume.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Repeatedly consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="next input code point">next input code point</a><span class="Apple-converted-space">&nbsp;</span>from the stream:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">U+0029 RIGHT PARENTHESIS ())</dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">EOF</dt>
    <dd style="margin: 0px 0px 1em 2em;">Return.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">the input stream<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; background: transparent;" title="starts with a valid escape">starts with a valid escape</a></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#consume-an-escaped-code-point0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume an escaped code point">Consume an escaped code point</a>.<span class="Apple-converted-space">&nbsp;</span><span class="note" style="position: relative; padding: 0.1em 0.5em 0.15em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; border-right-width: 0.5em; border-right-style: solid; background: rgb(233, 251, 233);">This allows an escaped right parenthesis (&quot;\)&quot;) to be encountered without ending the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a>. This is otherwise identical to the 
        &quot;anything else&quot; clause.</span></dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;">Do nothing.</dd>
</dl>
<h2 id="parsing" class="heading settled heading" data-level="5" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">5.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Parsing</span><a class="self-link" href="#parsing" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The input to the parsing stage is a stream or list of tokens from the tokenization stage. The output depends on how the parser is invoked, as defined by the entry points listed later in this section. The parser output can consist of at-rules, qualified rules, and/or declarations.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The parser’s output is constructed according to the fundamental syntax of CSS, without regards for the validity of any specific item. Implementations may check the validity of items as they are returned by the various parser algorithms and treat the algorithm as returning nothing if the item was invalid according to the implementation’s own grammar knowledge, or may construct a full tree as specified and &quot;clean up&quot; afterwards by removing any invalid items.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The items that can appear in the tree are:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="at-rule" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">at-rule<a class="self-link" href="#at-rule" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">An at-rule has a name, a prelude consisting of a list of component values, and an optional block consisting of a simple {} block.<p class="note" style="margin-top: 0px; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; background: rgb(233, 251, 233);">
        Note: This specification places no limits on what an at-rule’s block may contain. Individual at-rules must define whether they accept a block, and if so, how to parse it (preferably using one of the parser algorithms or entry points defined in this specification).</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="qualified-rule" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">qualified rule<a class="self-link" href="#qualified-rule" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A qualified rule has a prelude consisting of a list of component values, and a block consisting of a simple {} block.<p class="note" style="margin-top: 0px; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; background: rgb(233, 251, 233);">
        Note: Most qualified rules will be style rules, where the prelude is a selector<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="informative" data-link-type="biblio" href="#select" style="color: inherit; text-decoration: underline; background: transparent;" title="select">[SELECT]</a><span class="Apple-converted-space">&nbsp;</span>and the block a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#parse-a-list-of-declarations0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a list of declarations">list of declarations</a>.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="declaration" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">declaration<a class="self-link" href="#declaration" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A declaration has a name, a value consisting of a list of component values, and an<span class="Apple-converted-space">&nbsp;</span><var>important</var><span class="Apple-converted-space">&nbsp;</span>flag which is initially unset.<p style="margin-top: 1em; margin-bottom: 1em;">
        Declarations are further categorized as &quot;properties&quot; or &quot;descriptors&quot;, with the former typically appearing in<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#qualified-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="qualified rules">qualified rules</a><span class="Apple-converted-space">&nbsp;</span>and the latter appearing in<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#at-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="at-rules">at-rules</a>. (This categorization does not occur at the Syntax level; instead, it is a product of where the declaration appears, and is defined by the respective specifications defining the given rule.)</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="component-value" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">component value<a class="self-link" href="#component-value" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A component value is one of the preserved tokens, a function, or a simple block.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="preserved-tokens" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">preserved tokens<a class="self-link" href="#preserved-tokens" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">Any token produced by the tokenizer except for<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-function-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;function-token&gt;">&lt;function-token&gt;</a>s,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;{-token&gt;</a>s,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-paren" style="color: inherit; text-decoration: underline; background: transparent;">&lt;(-token&gt;</a>s, and<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-square" style="color: inherit; text-decoration: underline; background: transparent;">&lt;[-token&gt;</a>s.<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; background: rgb(233, 251, 233);">
        Note: The non-preserved tokens listed above are always consumed into higher-level objects, either functions or simple blocks, and so never appear in any parser output themselves.</p>
        <p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; background: rgb(233, 251, 233);">
            Note: The tokens<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;}-token&gt;</a>s,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-paren" style="color: inherit; text-decoration: underline; background: transparent;">&lt;)-token&gt;</a>s,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-square" style="color: inherit; text-decoration: underline; background: transparent;">&lt;]-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-string-token&gt;">&lt;bad-string-token&gt;</a>, and<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>are 
            always parse errors, but they are preserved in the token stream by this specification to allow other specs, such as Media Queries, to define more fine-grainted error-handling than just dropping an entire declaration or block.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="function" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">function<a class="self-link" href="#function" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A function has a name and a value consisting of a list of component values.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="simple-block" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">simple block<a class="self-link" href="#simple-block" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A simple block has an associated token (either a<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-square" style="color: inherit; text-decoration: underline; background: transparent;">&lt;[-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-paren" style="color: inherit; text-decoration: underline; background: transparent;">&lt;(-token&gt;</a>, or<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;{-token&gt;</a>) and a value consisting of a list of component values.</dd>
</dl>
<h3 id="parser-diagrams" class="heading settled heading" data-level="5.1" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">5.1.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Parser Railroad Diagrams</span><a class="self-link" href="#parser-diagrams" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <em>This section is non-normative.</em></p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This section presents an informative view of the parser, in the form of railroad diagrams. Railroad diagrams are more compact than a state-machine, but often easier to read than a regular expression.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    These diagrams are<span class="Apple-converted-space">&nbsp;</span><em>informative</em><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><em>incomplete</em>; they describe the grammar of &quot;correct&quot; stylesheets, but do not describe error-handling at all. They are provided solely to make it easier to get an intuitive grasp of the syntax.</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt id="stylesheet-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#stylesheet-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>Stylesheet</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="200" viewbox="0 0 345 200" width="345">
                <g transform="translate(.5 .5)"><path d="M 20 121 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 131h0.0"></path><path d="M304.0 131h0.0"></path><path d="M40.0 131a10 10 0 0 0 10 -10v-89a10 10 0 0 1 10 -10"></path><g><path d="M60.0 22h224"></path></g><path d="M284.0 22a10 10 0 0 1 10 10v89a10 10 0 0 0 10 10"></path><path d="M40.0 131h20"></path><g><path d="M60.0 131h0.0"></path><path d="M284.0 131h0.0"></path><path d="M60.0 131h10"></path><g><path d="M70.0 131h0.0"></path><path d="M274.0 131h0.0"></path><path d="M70.0 131a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><g><path d="M90.0 101h0.0"></path><path d="M254.0 101h0.0"></path><rect height="22" width="164" x="90.0" y="90"></rect><text x="172.0" y="105"></text></g><path d="M254.0 101a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><path d="M70.0 131a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path><g><path d="M90.0 71h28.0"></path><path d="M226.0 71h28.0"></path><rect height="22" width="108" x="118.0" y="60"></rect><text x="172.0" y="75"></text></g><path d="M254.0 71a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><path d="M70.0 131a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10"></path><g><path d="M90.0 41h28.0"></path><path d="M226.0 41h28.0"></path><rect height="22" width="108" x="118.0" y="30"></rect><text x="172.0" y="45"></text></g><path d="M254.0 41a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10"></path><path d="M70.0 131h20"></path><g><path d="M90.0 131h16.0"></path><path d="M238.0 131h16.0"></path><rect height="22" width="132" x="106.0" y="120"></rect><text x="172.0" y="135"></text></g><path d="M254.0 131h20"></path><path d="M70.0 131a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M90.0 161h44.0"></path><path d="M210.0 161h44.0"></path><rect height="22" width="76" x="134.0" y="150"></rect><text x="172.0" y="165"></text></g><path d="M254.0 161a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M274.0 131h10"></path><path d="M70.0 131a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M70.0 180h204"></path></g><path d="M274.0 180a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M284.0 131h20"></path></g><path d="M 304 131 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="rule-list-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#rule-list-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>Rule list</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="140" viewbox="0 0 345 140" width="345">
                <g transform="translate(.5 .5)"><path d="M 20 61 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 71h0.0"></path><path d="M304.0 71h0.0"></path><path d="M40.0 71a10 10 0 0 0 10 -10v-29a10 10 0 0 1 10 -10"></path><g><path d="M60.0 22h224"></path></g><path d="M284.0 22a10 10 0 0 1 10 10v29a10 10 0 0 0 10 10"></path><path d="M40.0 71h20"></path><g><path d="M60.0 71h0.0"></path><path d="M284.0 71h0.0"></path><path d="M60.0 71h10"></path><g><path d="M70.0 71h0.0"></path><path d="M274.0 71h0.0"></path><path d="M70.0 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><g><path d="M90.0 41h0.0"></path><path d="M254.0 41h0.0"></path><rect height="22" width="164" x="90.0" y="30"></rect><text x="172.0" y="45"></text></g><path d="M254.0 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><path d="M70.0 71h20"></path><g><path d="M90.0 71h16.0"></path><path d="M238.0 71h16.0"></path><rect height="22" width="132" x="106.0" y="60"></rect><text x="172.0" y="75"></text></g><path d="M254.0 71h20"></path><path d="M70.0 71a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M90.0 101h44.0"></path><path d="M210.0 101h44.0"></path><rect height="22" width="76" x="134.0" y="90"></rect><text x="172.0" y="105"></text></g><path d="M254.0 101a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M274.0 71h10"></path><path d="M70.0 71a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M70.0 120h204"></path></g><path d="M274.0 120a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M284.0 71h20"></path></g><path d="M 304 71 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="at-rule-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#at-rule-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>At-rule</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="102" viewbox="0 0 589 102" width="589">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0.0"></path><path d="M214.0 41h0.0"></path><rect height="22" width="164" x="50.0" y="30"></rect><text x="132.0" y="45"></text></g><path d="M214 41h10"></path><g><path d="M224 41h0.0"></path><path d="M424.0 41h0.0"></path><path d="M224.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M244.0 21h160"></path></g><path d="M404.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M224.0 41h20"></path><g><path d="M244.0 41h0.0"></path><path d="M404.0 41h0.0"></path><path d="M244.0 41h10"></path><g><path d="M254.0 41h0.0"></path><path d="M394.0 41h0.0"></path><rect height="22" width="140" x="254.0" y="30"></rect><text x="324.0" y="45"></text></g><path d="M394.0 41h10"></path><path d="M254.0 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M254.0 61h140"></path></g><path d="M394.0 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M404.0 41h20"></path></g><g><path d="M424 41h0.0"></path><path d="M548.0 41h0.0"></path><path d="M424.0 41h20"></path><g><path d="M444.0 41h0.0"></path><path d="M528.0 41h0.0"></path><rect height="22" width="84" x="444.0" y="30"></rect><text x="486.0" y="45"></text></g><path d="M528.0 41h20"></path><path d="M424.0 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M444.0 71h28.0"></path><path d="M500.0 71h28.0"></path><rect height="22" rx="10" ry="10" width="28" x="472.0" y="60"></rect><text x="486.0" y="75"></text></g><path d="M528.0 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M 548 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="qualified-rule-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#qualified-rule-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>Qualified rule</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="81" viewbox="0 0 385 81" width="385">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 41h0.0"></path><path d="M240.0 41h0.0"></path><path d="M40.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M60.0 21h160"></path></g><path d="M220.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M40.0 41h20"></path><g><path d="M60.0 41h0.0"></path><path d="M220.0 41h0.0"></path><path d="M60.0 41h10"></path><g><path d="M70.0 41h0.0"></path><path d="M210.0 41h0.0"></path><rect height="22" width="140" x="70.0" y="30"></rect><text x="140.0" y="45"></text></g><path d="M210.0 41h10"></path><path d="M70.0 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M70.0 61h140"></path></g><path d="M210.0 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M220.0 41h20"></path></g><path d="M240 41h10"></path><g><path d="M250 41h0.0"></path><path d="M334.0 41h0.0"></path><rect height="22" width="84" x="250.0" y="30"></rect><text x="292.0" y="45"></text></g><path d="M334 41h10"></path><path d="M 344 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="declaration-list-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#declaration-list-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>Declaration list</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="102" viewbox="0 0 589 102" width="589">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0.0"></path><path d="M94.0 41h0.0"></path><rect height="22" width="44" x="50.0" y="30"></rect><text x="72.0" y="45"></text></g><path d="M94 41h10"></path><g><path d="M104 41h0.0"></path><path d="M548.0 41h0.0"></path><path d="M104.0 41h20"></path><g><path d="M124.0 41h0.0"></path><path d="M528.0 41h0.0"></path><g><path d="M124.0 41h0.0"></path><path d="M272.0 41h0.0"></path><path d="M124.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M144.0 21h108"></path></g><path d="M252.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M124.0 41h20"></path><g><path d="M144.0 41h0.0"></path><path d="M252.0 41h0.0"></path><rect height="22" width="108" x="144.0" y="30"></rect><text x="198.0" y="45"></text></g><path d="M252.0 41h20"></path></g><g><path d="M272.0 41h0.0"></path><path d="M528.0 41h0.0"></path><path d="M272.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M292.0 21h216"></path></g><path d="M508.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M272.0 41h20"></path><g><path d="M292.0 41h0.0"></path><path d="M508.0 41h0.0"></path><path d="M292.0 41h10"></path><g><path d="M302.0 41h0.0"></path><path d="M330.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="302.0" y="30"></rect><text x="316.0" y="45"></text></g><path d="M330.0 41h10"></path><path d="M340.0 41h10"></path><g><path d="M350.0 41h0.0"></path><path d="M498.0 41h0.0"></path><rect height="22" width="148" x="350.0" y="30"></rect><text x="424.0" y="45"></text></g><path d="M498.0 41h10"></path></g><path d="M508.0 41h20"></path></g></g><path d="M528.0 41h20"></path><path d="M104.0 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M124.0 71h70.0"></path><path d="M458.0 71h70.0"></path><path d="M194.0 71h10"></path><g><path d="M204.0 71h0.0"></path><path d="M280.0 71h0.0"></path><rect height="22" width="76" x="204.0" y="60"></rect><text x="242.0" y="75"></text></g><path d="M280.0 71h10"></path><path d="M290.0 71h10"></path><g><path d="M300.0 71h0.0"></path><path d="M448.0 71h0.0"></path><rect height="22" width="148" x="300.0" y="60"></rect><text x="374.0" y="75"></text></g><path d="M448.0 71h10"></path></g><path d="M528.0 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M 548 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="declaration-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#declaration-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>Declaration</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="101" viewbox="0 0 677 101" width="677">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0.0"></path><path d="M174.0 41h0.0"></path><rect height="22" width="124" x="50.0" y="30"></rect><text x="112.0" y="45"></text></g><path d="M174 41h10"></path><path d="M184 41h10"></path><g><path d="M194 41h0.0"></path><path d="M238.0 41h0.0"></path><rect height="22" width="44" x="194.0" y="30"></rect><text x="216.0" y="45"></text></g><path d="M238 41h10"></path><path d="M248 41h10"></path><g><path d="M258 41h0.0"></path><path d="M286.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="258.0" y="30"></rect><text x="272.0" y="45"></text></g><path d="M286 41h10"></path><g><path d="M296 41h0.0"></path><path d="M496.0 41h0.0"></path><path d="M296.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M316.0 21h160"></path></g><path d="M476.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M296.0 41h20"></path><g><path d="M316.0 41h0.0"></path><path d="M476.0 41h0.0"></path><path d="M316.0 41h10"></path><g><path d="M326.0 41h0.0"></path><path d="M466.0 41h0.0"></path><rect height="22" width="140" x="326.0" y="30"></rect><text x="396.0" y="45"></text></g><path d="M466.0 41h10"></path><path d="M326.0 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M326.0 61h140"></path></g><path d="M466.0 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M476.0 41h20"></path></g><g><path d="M496 41h0.0"></path><path d="M636.0 41h0.0"></path><path d="M496.0 41h20"></path><g><path d="M516.0 41h100"></path></g><path d="M616.0 41h20"></path><path d="M496.0 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M516.0 61h0.0"></path><path d="M616.0 61h0.0"></path><rect height="22" width="100" x="516.0" y="50"></rect><text x="566.0" y="65"></text></g><path d="M616.0 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><path d="M 636 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="!important-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#%21important-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>!important</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="62" viewbox="0 0 497 62" width="497">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0.0"></path><path d="M78.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="50.0" y="20"></rect><text x="64.0" y="35"></text></g><path d="M78 31h10"></path><path d="M88 31h10"></path><g><path d="M98 31h0.0"></path><path d="M142.0 31h0.0"></path><rect height="22" width="44" x="98.0" y="20"></rect><text x="120.0" y="35"></text></g><path d="M142 31h10"></path><path d="M152 31h10"></path><g><path d="M162 31h0.0"></path><path d="M382.0 31h0.0"></path><rect height="22" width="220" x="162.0" y="20"></rect><text x="272.0" y="35"></text></g><path d="M382 31h10"></path><path d="M392 31h10"></path><g><path d="M402 31h0.0"></path><path d="M446.0 31h0.0"></path><rect height="22" width="44" x="402.0" y="20"></rect><text x="424.0" y="35"></text></g><path d="M446 31h10"></path><path d="M 456 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="component-value-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#component-value-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>Component value</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="182" viewbox="0 0 261 182" width="261">
                <g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 31h0.0"></path><path d="M220.0 31h0.0"></path><path d="M40.0 31h20"></path><g><path d="M60.0 31h0.0"></path><path d="M200.0 31h0.0"></path><rect height="22" width="140" x="60.0" y="20"></rect><text x="130.0" y="35"></text></g><path d="M200.0 31h20"></path><path d="M40.0 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60.0 61h28.0"></path><path d="M172.0 61h28.0"></path><rect height="22" width="84" x="88.0" y="50"></rect><text x="130.0" y="65"></text></g><path d="M200.0 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M40.0 31a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M60.0 91h28.0"></path><path d="M172.0 91h28.0"></path><rect height="22" width="84" x="88.0" y="80"></rect><text x="130.0" y="95"></text></g><path d="M200.0 91a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path><path d="M40.0 31a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10"></path><g><path d="M60.0 121h28.0"></path><path d="M172.0 121h28.0"></path><rect height="22" width="84" x="88.0" y="110"></rect><text x="130.0" y="125"></text></g><path d="M200.0 121a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10"></path><path d="M40.0 31a10 10 0 0 1 10 10v100a10 10 0 0 0 10 10"></path><g><path d="M60.0 151h4.0"></path><path d="M196.0 151h4.0"></path><rect height="22" width="132" x="64.0" y="140"></rect><text x="130.0" y="155"></text></g><path d="M200.0 151a10 10 0 0 0 10 -10v-100a10 10 0 0 1 10 -10"></path></g><path d="M 220 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="{}-block-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#%7B%7D-block-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>{} block</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="81" viewbox="0 0 377 81" width="377">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0.0"></path><path d="M78.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="50.0" y="30"></rect><text x="64.0" y="45"></text></g><path d="M78 41h10"></path><g><path d="M88 41h0.0"></path><path d="M288.0 41h0.0"></path><path d="M88.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M108.0 21h160"></path></g><path d="M268.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M88.0 41h20"></path><g><path d="M108.0 41h0.0"></path><path d="M268.0 41h0.0"></path><path d="M108.0 41h10"></path><g><path d="M118.0 41h0.0"></path><path d="M258.0 41h0.0"></path><rect height="22" width="140" x="118.0" y="30"></rect><text x="188.0" y="45"></text></g><path d="M258.0 41h10"></path><path d="M118.0 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M118.0 61h140"></path></g><path d="M258.0 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M268.0 41h20"></path></g><path d="M288 41h10"></path><g><path d="M298 41h0.0"></path><path d="M326.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="298.0" y="30"></rect><text x="312.0" y="45"></text></g><path d="M326 41h10"></path><path d="M 336 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="()-block-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#%28%29-block-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>() block</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="81" viewbox="0 0 377 81" width="377">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0.0"></path><path d="M78.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="50.0" y="30"></rect><text x="64.0" y="45"></text></g><path d="M78 41h10"></path><g><path d="M88 41h0.0"></path><path d="M288.0 41h0.0"></path><path d="M88.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M108.0 21h160"></path></g><path d="M268.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M88.0 41h20"></path><g><path d="M108.0 41h0.0"></path><path d="M268.0 41h0.0"></path><path d="M108.0 41h10"></path><g><path d="M118.0 41h0.0"></path><path d="M258.0 41h0.0"></path><rect height="22" width="140" x="118.0" y="30"></rect><text x="188.0" y="45"></text></g><path d="M258.0 41h10"></path><path d="M118.0 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M118.0 61h140"></path></g><path d="M258.0 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M268.0 41h20"></path></g><path d="M288 41h10"></path><g><path d="M298 41h0.0"></path><path d="M326.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="298.0" y="30"></rect><text x="312.0" y="45"></text></g><path d="M326 41h10"></path><path d="M 336 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="[]-block-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#%5B%5D-block-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[] block</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="81" viewbox="0 0 377 81" width="377">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0.0"></path><path d="M78.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="50.0" y="30"></rect><text x="64.0" y="45"></text></g><path d="M78 41h10"></path><g><path d="M88 41h0.0"></path><path d="M288.0 41h0.0"></path><path d="M88.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M108.0 21h160"></path></g><path d="M268.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M88.0 41h20"></path><g><path d="M108.0 41h0.0"></path><path d="M268.0 41h0.0"></path><path d="M108.0 41h10"></path><g><path d="M118.0 41h0.0"></path><path d="M258.0 41h0.0"></path><rect height="22" width="140" x="118.0" y="30"></rect><text x="188.0" y="45"></text></g><path d="M258.0 41h10"></path><path d="M118.0 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M118.0 61h140"></path></g><path d="M258.0 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M268.0 41h20"></path></g><path d="M288 41h10"></path><g><path d="M298 41h0.0"></path><path d="M326.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="298.0" y="30"></rect><text x="312.0" y="45"></text></g><path d="M326 41h10"></path><path d="M 336 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
    <dt id="function-block-diagram" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="self-link" href="#function-block-diagram" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>Function block</dt>
    <dd style="margin: 0px 0px 1em 2em;">
        <div class="railroad">
            <svg class="railroad-diagram" height="81" viewbox="0 0 497 81" width="497">
                <g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0.0"></path><path d="M198.0 41h0.0"></path><rect height="22" width="148" x="50.0" y="30"></rect><text x="124.0" y="45"></text></g><path d="M198 41h10"></path><g><path d="M208 41h0.0"></path><path d="M408.0 41h0.0"></path><path d="M208.0 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M228.0 21h160"></path></g><path d="M388.0 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M208.0 41h20"></path><g><path d="M228.0 41h0.0"></path><path d="M388.0 41h0.0"></path><path d="M228.0 41h10"></path><g><path d="M238.0 41h0.0"></path><path d="M378.0 41h0.0"></path><rect height="22" width="140" x="238.0" y="30"></rect><text x="308.0" y="45"></text></g><path d="M378.0 41h10"></path><path d="M238.0 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M238.0 61h140"></path></g><path d="M378.0 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M388.0 41h20"></path></g><path d="M408 41h10"></path><g><path d="M418 41h0.0"></path><path d="M446.0 41h0.0"></path><rect height="22" rx="10" ry="10" width="28" x="418.0" y="30"></rect><text x="432.0" y="45"></text></g><path d="M446 41h10"></path><path d="M 456 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g>
            </svg>
        </div>
    </dd>
</dl>
<h3 id="parser-definitions" class="heading settled heading" data-level="5.2" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">5.2.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Definitions</span><a class="self-link" href="#parser-definitions" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="current-input-token" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">current input token<a class="self-link" href="#current-input-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">The token or<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#component-value" style="color: inherit; text-decoration: underline; background: transparent;" title="component value">component value</a><span class="Apple-converted-space">&nbsp;</span>currently being operated on, from the list of tokens produced by the tokenizer.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="next-input-token" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">next input token<a class="self-link" href="#next-input-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">The token or<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#component-value" style="color: inherit; text-decoration: underline; background: transparent;" title="component value">component value</a><span class="Apple-converted-space">&nbsp;</span>following the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>in the list of tokens produced by the tokenizer. If there isn’t a token following the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a>, the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="next input token">next 
        input token</a><span class="Apple-converted-space">&nbsp;</span>is an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="typedef-eof-token" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;"><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a><a class="self-link" href="#typedef-eof-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">A conceptual token representing the end of the list of tokens. Whenever the list of tokens is empty, the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="next input token">next input token</a><span class="Apple-converted-space">&nbsp;</span>is always an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="consume-the-next-input-token" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume the next input token<a class="self-link" href="#consume-the-next-input-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">Let the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>be the current<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="next input token">next input token</a>, adjusting the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="next input token">next input token</a><span class="Apple-converted-space">&nbsp;</span>accordingly.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="reconsume-the-current-input-token" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">reconsume the current input token<a class="self-link" href="#reconsume-the-current-input-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">The next time an algorithm instructs you to<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">consume the next input token</a>, instead do nothing (retain the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>unchanged).</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><dfn id="ascii-case-insensitive" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">ASCII case-insensitive<a class="self-link" href="#ascii-case-insensitive" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn></dt>
    <dd style="margin: 0px 0px 1em 2em;">When two strings are to be matched ASCII case-insensitively, temporarily convert both of them to ASCII lower-case form by adding 32 (0x20) to the value of each<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>between U+0041 LATIN CAPITAL LETTER A (A) and U+005A LATIN CAPITAL LETTER Z (Z), inclusive, and check if this results in identical sequences of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a>.</dd>
</dl>
<h3 id="parser-entry-points" class="heading settled heading" data-level="5.3" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">5.3.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Parser Entry Points</span><a class="self-link" href="#parser-entry-points" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The algorithms defined in this section produce high-level CSS objects from lower-level objects. They assume that they are invoked on a token stream, but they may also be invoked on a string; if so, first perform<span class="Apple-converted-space">&nbsp;</span><a href="#input-preprocessing" style="color: inherit; text-decoration: underline; background: transparent;">input preprocessing</a><span class="Apple-converted-space">&nbsp;</span>to produce a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>stream, then perform<span class="Apple-converted-space">&nbsp;</span><a href="#tokenization" style="color: inherit; text-decoration: underline; background: transparent;">tokenization</a><span class="Apple-converted-space">&nbsp;</span>to 
    produce a token stream.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    &quot;<a data-link-type="dfn" href="#parse-a-stylesheet0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a stylesheet">Parse a stylesheet</a>&quot; can also be invoked on a byte stream, in which case<span class="Apple-converted-space">&nbsp;</span><a href="#input-byte-stream" style="color: inherit; text-decoration: underline; background: transparent;">The input byte stream</a><span class="Apple-converted-space">&nbsp;</span>defines how to decode it into Unicode.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: This specification does not define how a byte stream is decoded for other entry points.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: Other specs can define additional entry points for their own purposes.</p>
<div class="note" style="position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    The following notes should probably be translated into normative text in the relevant specs, hooking this spec’s terms:<p style="margin-top: 0px; margin-bottom: 1em;">
    </p>
    <ul style="margin-left: 0px; padding-left: 2em;">
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">&quot;<a data-link-type="dfn" href="#parse-a-stylesheet0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a stylesheet">Parse a stylesheet</a>&quot; is intended to be the normal parser entry point, for parsing stylesheets.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">&quot;<a data-link-type="dfn" href="#parse-a-list-of-rules0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a list of rules">Parse a list of rules</a>&quot; is intended for the content of at-rules such as<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://dev.w3.org/csswg/css-conditional-3/#at-ruledef-media" style="color: inherit; text-decoration: underline; background: transparent;" title="@media">@media</a>. It differs from &quot;<a data-link-type="dfn" href="#parse-a-stylesheet0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a stylesheet">Parse a stylesheet</a>&quot; in the handling of<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-cdo-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;cdo-token&gt;">&lt;CDO-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-cdc-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;cdc-token&gt;">&lt;CDC-token&gt;</a>.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">&quot;<a data-link-type="dfn" href="#parse-a-rule0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a rule">Parse a rule</a>&quot; is intended for use by the<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">CSSStyleSheet#insertRule</code><span class="Apple-converted-space">&nbsp;</span>method, and similar functions which might exist, which parse text into a single rule.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">&quot;<a data-link-type="dfn" href="#parse-a-declaration0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a declaration">Parse a declaration</a>&quot; is used in<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://dev.w3.org/csswg/css-conditional-3/#at-ruledef-supports" style="color: inherit; text-decoration: underline; background: transparent;" title="@supports">@supports</a><span class="Apple-converted-space">&nbsp;</span>conditions.<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="informative" data-link-type="biblio" href="#css3-conditional" style="color: inherit; text-decoration: underline; background: transparent;" title="css3-conditional">[CSS3-CONDITIONAL]</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">&quot;<a data-link-type="dfn" href="#parse-a-list-of-declarations0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a list of declarations">Parse a list of declarations</a>&quot; is for the contents of a<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">style</code><span class="Apple-converted-space">&nbsp;</span>attribute, which parses text into the contents of a single style rule.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">&quot;<a data-link-type="dfn" href="#parse-a-component-value0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a component value">Parse a component value</a>&quot; is for things that need to consume a single value, like the parsing rules for<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://www.w3.org/TR/css3-values/#attr" style="color: inherit; text-decoration: underline; background: transparent;" title="attr()">attr()</a>.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">&quot;<a data-link-type="dfn" href="#parse-a-list-of-component-values0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a list of component values">Parse a list of component values</a>&quot; is for the contents of presentational attributes, which parse text into a single declaration’s value, or for parsing a stand-alone selector<a data-biblio-type="informative" data-link-type="biblio" href="#select" style="color: inherit; text-decoration: underline; background: transparent;" title="select">[SELECT]</a><span class="Apple-converted-space">&nbsp;</span>or list of Media Queries<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="informative" data-link-type="biblio" href="#mediaq" style="color: inherit; text-decoration: underline; background: transparent;" title="mediaq">[MEDIAQ]</a>, 
            as in<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/selectors-api/" style="color: inherit; text-decoration: underline; background: transparent;">Selectors API</a><span class="Apple-converted-space">&nbsp;</span>or the<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">media</code><span class="Apple-converted-space">&nbsp;</span>HTML attribute.</li>
    </ul>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    All of the algorithms defined in this spec may be called with either a list of tokens or of component values. Either way produces an identical result.</p>
<h4 id="parse-a-stylesheet" class="heading settled heading" data-level="5.3.1" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.3.1.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#parse-a-stylesheet0" style="color: inherit; text-decoration: underline; background: transparent;">Parse a stylesheet</a><a class="self-link" href="#parse-a-stylesheet" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="parse-a-stylesheet0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">parse a stylesheet<a class="self-link" href="#parse-a-stylesheet0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>from a stream of tokens:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Create a new stylesheet.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#consume-a-list-of-rules0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a list of rules">Consume a list of rules</a><span class="Apple-converted-space">&nbsp;</span>from the stream of tokens, with the<span class="Apple-converted-space">&nbsp;</span><a href="#top-level-flag" style="color: inherit; text-decoration: underline; background: transparent;"><var>top-level flag</var></a><span class="Apple-converted-space">&nbsp;</span>set.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Assign the returned value to the stylesheet’s value.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Return the stylesheet.</li>
</ol>
<h4 id="parse-a-list-of-rules" class="heading settled heading" data-level="5.3.2" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.3.2.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#parse-a-list-of-rules0" style="color: inherit; text-decoration: underline; background: transparent;">Parse a list of rules</a><a class="self-link" href="#parse-a-list-of-rules" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="parse-a-list-of-rules0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">parse a list of rules<a class="self-link" href="#parse-a-list-of-rules0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>from a stream of tokens:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#consume-a-list-of-rules0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a list of rules">Consume a list of rules</a><span class="Apple-converted-space">&nbsp;</span>from the stream of tokens, with the<span class="Apple-converted-space">&nbsp;</span><a href="#top-level-flag" style="color: inherit; text-decoration: underline; background: transparent;"><var>top-level flag</var></a><span class="Apple-converted-space">&nbsp;</span>unset.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Return the returned list.</li>
</ol>
<h4 id="parse-a-rule" class="heading settled heading" data-level="5.3.3" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.3.3.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#parse-a-rule0" style="color: inherit; text-decoration: underline; background: transparent;">Parse a rule</a><a class="self-link" href="#parse-a-rule" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="parse-a-rule0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">parse a rule<a class="self-link" href="#parse-a-rule0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>from a stream of tokens:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">Consume the next input token</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">While the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">consume the next input token</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>, return a syntax error.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise, if the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-an-at-rule0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume an at-rule">consume an at-rule</a><span class="Apple-converted-space">&nbsp;</span>and let<span class="Apple-converted-space">&nbsp;</span><var>rule</var><span class="Apple-converted-space">&nbsp;</span>be 
        the return value.</p>
        <p style="margin-top: 1em; margin-bottom: 1em;">
            Otherwise,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-qualified-rule0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a qualified rule">consume a qualified rule</a><span class="Apple-converted-space">&nbsp;</span>and let<span class="Apple-converted-space">&nbsp;</span><var>rule</var><span class="Apple-converted-space">&nbsp;</span>be the return value. If nothing was returned, return a syntax error.</p>
    </li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">While the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">consume the next input token</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>, return<span class="Apple-converted-space">&nbsp;</span><var>rule</var>. Otherwise, return a syntax error.</li>
</ol>
<h4 id="parse-a-declaration" class="heading settled heading" data-level="5.3.4" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.3.4.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#parse-a-declaration0" style="color: inherit; text-decoration: underline; background: transparent;">Parse a declaration</a><a class="self-link" href="#parse-a-declaration" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: Unlike &quot;<a data-link-type="dfn" href="#parse-a-list-of-declarations0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a list of declarations">Parse a list of declarations</a>&quot;, this parses only a declaration and not an at-rule.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="parse-a-declaration0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">parse a declaration<a class="self-link" href="#parse-a-declaration0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">Consume the next input token</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">While the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">consume the next input token</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is not an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a>, return a syntax error.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#consume-a-declaration0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a declaration">Consume a declaration</a>. If anything was returned, return it. Otherwise, return a syntax error.</li>
</ol>
<h4 id="parse-a-list-of-declarations" class="heading settled heading" data-level="5.3.5" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.3.5.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#parse-a-list-of-declarations0" style="color: inherit; text-decoration: underline; background: transparent;">Parse a list of declarations</a><a class="self-link" href="#parse-a-list-of-declarations" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: Despite the name, this actually parses a mixed list of declarations and at-rules, as CSS 2.1 does for<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/CSS21/page.html#page-box" style="color: inherit; text-decoration: underline; background: transparent;"><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="@page">@page</span></a>. Unexpected at-rules (which could be all of them, in a given context) are invalid and should be ignored by the consumer.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="parse-a-list-of-declarations0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">parse a list of declarations<a class="self-link" href="#parse-a-list-of-declarations0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#consume-a-list-of-declarations0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a list of declarations">Consume a list of declarations</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Return the returned list.</li>
</ol>
<h4 id="parse-a-component-value" class="heading settled heading" data-level="5.3.6" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.3.6.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#parse-a-component-value0" style="color: inherit; text-decoration: underline; background: transparent;">Parse a component value</a><a class="self-link" href="#parse-a-component-value" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="parse-a-component-value0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">parse a component value<a class="self-link" href="#parse-a-component-value0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">Consume the next input token</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">While the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">consume the next input token</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>, return a syntax error.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#reconsume-the-current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input token">Reconsume the current input token</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-component-value0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a component value">Consume a component value</a><span class="Apple-converted-space">&nbsp;</span>and let<span class="Apple-converted-space">&nbsp;</span><var>value</var><span class="Apple-converted-space">&nbsp;</span>be the return value. If nothing is returned, return a syntax error.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">While the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">consume the next input token</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>, return<span class="Apple-converted-space">&nbsp;</span><var>value</var>. Otherwise, return a syntax error.</li>
</ol>
<h4 id="parse-a-list-of-component-values" class="heading settled heading" data-level="5.3.7" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.3.7.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#parse-a-list-of-component-values0" style="color: inherit; text-decoration: underline; background: transparent;">Parse a list of component values</a><a class="self-link" href="#parse-a-list-of-component-values" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="parse-a-list-of-component-values0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">parse a list of component values<a class="self-link" href="#parse-a-list-of-component-values0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Repeatedly<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-component-value0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a component value">consume a component value</a><span class="Apple-converted-space">&nbsp;</span>until an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>is returned, appending the returned values (except the final<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>) 
        into a list. Return the list.</li>
</ol>
<h3 id="parser-algorithms" class="heading settled heading" data-level="5.4" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">5.4.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Parser Algorithms</span><a class="self-link" href="#parser-algorithms" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The following algorithms comprise the parser. They are called by the parser entry points above.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    These algorithms may be called with a list of either tokens or of component values. (The difference being that some tokens are replaced by<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#function" style="color: inherit; text-decoration: underline; background: transparent;" title="functions">functions</a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#simple-block" style="color: inherit; text-decoration: underline; background: transparent;" title="simple blocks">simple blocks</a><span class="Apple-converted-space">&nbsp;</span>in a list of component values.) Similar to how the input stream returned EOF code points to represent when it was empty during the tokenization stage, the lists in this stage must return an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>when 
    the next token is requested but they are empty.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    An algorithm may be invoked with a specific list, in which case it consumes only that list (and when that list is exhausted, it begins returning<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>s). Otherwise, it is implicitly invoked with the same list as the invoking algorithm.</p>
<h4 id="consume-a-list-of-rules" class="heading settled heading" data-level="5.4.1" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.4.1.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-list-of-rules0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a list of rules</a><a class="self-link" href="#consume-a-list-of-rules" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-list-of-rules0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a list of rules<a class="self-link" href="#consume-a-list-of-rules0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Create an initially empty list of rules.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Repeatedly consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="next input token">next input token</a>:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Do nothing.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Return the list of rules.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-cdo-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;cdo-token&gt;">&lt;CDO-token&gt;</a></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-cdc-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;cdc-token&gt;">&lt;CDC-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">If the<span class="Apple-converted-space">&nbsp;</span><dfn id="top-level-flag" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;"><var>top-level flag</var><a class="self-link" href="#top-level-flag" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>is set, do nothing.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#reconsume-the-current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input token">reconsume the current input token</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-qualified-rule0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a qualified rule">Consume a qualified rule</a>. If anything is returned, append it to the list of rules.</p>
    </dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#reconsume-the-current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input token">Reconsume the current input token</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-an-at-rule0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume an at-rule">Consume an at-rule</a>. If anything is returned, append it to the list of rules.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#reconsume-the-current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input token">Reconsume the current input token</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-qualified-rule0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a qualified rule">Consume a qualified rule</a>. If anything is returned, append it to the list of rules.</dd>
</dl>
<h4 id="consume-an-at-rule" class="heading settled heading" data-level="5.4.2" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.4.2.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-an-at-rule0" style="color: inherit; text-decoration: underline; background: transparent;">Consume an at-rule</a><a class="self-link" href="#consume-an-at-rule" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-an-at-rule0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume an at-rule<a class="self-link" href="#consume-an-at-rule0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Create a new at-rule with its name set to the value of the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a>, its prelude initially set to an empty list, and its value initially set to nothing.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Repeatedly consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="next input token">next input token</a>:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-semicolon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;semicolon-token&gt;">&lt;semicolon-token&gt;</a></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Return the at-rule.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a href="#tokendef-open-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;{-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#consume-a-simple-block0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a simple block">Consume a simple block</a><span class="Apple-converted-space">&nbsp;</span>and assign it to the at-rule’s block. Return the at-rule.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#simple-block" style="color: inherit; text-decoration: underline; background: transparent;" title="simple block">simple block</a><span class="Apple-converted-space">&nbsp;</span>with an associated token of<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;{-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Assign the block to the at-rule’s block. Return the at-rule.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#reconsume-the-current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input token">Reconsume the current input token</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-component-value0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a component value">Consume a component value</a>. Append the returned value to the at-rule’s prelude.</dd>
</dl>
<h4 id="consume-a-qualified-rule" class="heading settled heading" data-level="5.4.3" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.4.3.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-qualified-rule0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a qualified rule</a><a class="self-link" href="#consume-a-qualified-rule" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-qualified-rule0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a qualified rule<a class="self-link" href="#consume-a-qualified-rule0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Create a new qualified rule with its prelude initially set to an empty list, and its value initially set to nothing.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Repeatedly consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="next input token">next input token</a>:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">This is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#parse-error" style="color: inherit; text-decoration: underline; background: transparent;" title="parse error">parse error</a>. Return nothing.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a href="#tokendef-open-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;{-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#consume-a-simple-block0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a simple block">Consume a simple block</a><span class="Apple-converted-space">&nbsp;</span>and assign it to the qualified rule’s block. Return the qualified rule.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#simple-block" style="color: inherit; text-decoration: underline; background: transparent;" title="simple block">simple block</a><span class="Apple-converted-space">&nbsp;</span>with an associated token of<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;{-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Assign the block to the qualified rule’s block. Return the qualified rule.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#reconsume-the-current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input token">Reconsume the current input token</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-component-value0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a component value">Consume a component value</a>. Append the returned value to the qualified rule’s prelude.</dd>
</dl>
<h4 id="consume-a-list-of-declarations" class="heading settled heading" data-level="5.4.4" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.4.4.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-list-of-declarations0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a list of declarations</a><a class="self-link" href="#consume-a-list-of-declarations" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-list-of-declarations0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a list of declarations<a class="self-link" href="#consume-a-list-of-declarations0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Create an initially empty list of declarations.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Repeatedly consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="next input token">next input token</a>:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-semicolon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;semicolon-token&gt;">&lt;semicolon-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Do nothing.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Return the list of declarations.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#consume-an-at-rule0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume an at-rule">Consume an at-rule</a>. Append the returned rule to the list of declarations.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Initialize a temporary list initially filled with the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">Consume the next input token</a>. While the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is anything other than a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-semicolon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;semicolon-token&gt;">&lt;semicolon-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>or<a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>, 
        append it to the temporary list and<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">consume the next input token</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-declaration0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a declaration">Consume a declaration</a><span class="Apple-converted-space">&nbsp;</span>from the temporary list. If anything was returned, append it to the list of declarations.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;">This is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#parse-error" style="color: inherit; text-decoration: underline; background: transparent;" title="parse error">parse error</a>. Repeatedly<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-component-value0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a component value">consume a component value</a><span class="Apple-converted-space">&nbsp;</span>until it is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-semicolon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;semicolon-token&gt;">&lt;semicolon-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>or<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>.</dd>
</dl>
<h4 id="consume-a-declaration" class="heading settled heading" data-level="5.4.5" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.4.5.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-declaration0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a declaration</a><a class="self-link" href="#consume-a-declaration" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-declaration0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a declaration<a class="self-link" href="#consume-a-declaration0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Create a new declaration with its name set to the value of the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>and its value initially set to the empty list.</p>
<ol style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">Consume the next input token</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">While the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">consume the next input token</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is anything other than a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-colon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;colon-token&gt;">&lt;colon-token&gt;</a>, this is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#parse-error" style="color: inherit; text-decoration: underline; background: transparent;" title="parse error">parse error</a>. Return nothing.<p style="margin-top: 1em; margin-bottom: 1em;">
        Otherwise,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">consume the next input token</a>.</p>
    </li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">While the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is anything other than an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a>, append it to the declaration’s value and<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">consume the next 
        input token</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">If the last two non-<a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a>s in the declaration’s value are a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with the value &quot;!&quot; followed by an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with 
        a value that is an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#ascii-case-insensitive" style="color: inherit; text-decoration: underline; background: transparent;" title="ascii case-insensitive">ASCII case-insensitive</a><span class="Apple-converted-space">&nbsp;</span>match for &quot;important&quot;, remove them from the declaration’s value and set the declaration’s<span class="Apple-converted-space">&nbsp;</span><var>important</var><span class="Apple-converted-space">&nbsp;</span>flag to true.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Return the declaration.</li>
</ol>
<h4 id="consume-a-component-value" class="heading settled heading" data-level="5.4.6" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.4.6.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-component-value0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a component value</a><a class="self-link" href="#consume-a-component-value" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-component-value0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a component value<a class="self-link" href="#consume-a-component-value0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <a data-link-type="dfn" href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="consume the next input token">Consume the next input token</a>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    If the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;{-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-square" style="color: inherit; text-decoration: underline; background: transparent;">&lt;[-token&gt;</a>, or<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-paren" style="color: inherit; text-decoration: underline; background: transparent;">&lt;(-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-simple-block0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a simple block">consume 
    a simple block</a><span class="Apple-converted-space">&nbsp;</span>and return it.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Otherwise, if the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-function-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;function-token&gt;">&lt;function-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-function0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a function">consume a function</a><span class="Apple-converted-space">&nbsp;</span>and return it.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Otherwise, return the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a>.</p>
<h4 id="consume-a-simple-block" class="heading settled heading" data-level="5.4.7" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.4.7.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-simple-block0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a simple block</a><a class="self-link" href="#consume-a-simple-block" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-simple-block0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a simple block<a class="self-link" href="#consume-a-simple-block0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The<span class="Apple-converted-space">&nbsp;</span><dfn id="ending-token" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">ending token<a class="self-link" href="#ending-token" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>is the mirror variant of the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a>. (E.g. if it was called with<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-square" style="color: inherit; text-decoration: underline; background: transparent;">&lt;[-token&gt;</a>, 
    the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#ending-token" style="color: inherit; text-decoration: underline; background: transparent;" title="ending token">ending token</a><span class="Apple-converted-space">&nbsp;</span>is<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-square" style="color: inherit; text-decoration: underline; background: transparent;">&lt;]-token&gt;</a>.)</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Create a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#simple-block" style="color: inherit; text-decoration: underline; background: transparent;" title="simple block">simple block</a><span class="Apple-converted-space">&nbsp;</span>with its associated token set to the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a><span class="Apple-converted-space">&nbsp;</span>and with a value with is initially an empty list.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Repeatedly consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="next input token">next input token</a><span class="Apple-converted-space">&nbsp;</span>and process it as follows:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a data-link-type="dfn" href="#ending-token" style="color: inherit; text-decoration: underline; background: transparent;" title="ending token">ending token</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Return the block.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#reconsume-the-current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input token">Reconsume the current input token</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-component-value0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a component value">Consume a component value</a><span class="Apple-converted-space">&nbsp;</span>and append it to the value of the block.</dd>
</dl>
<h4 id="consume-a-function" class="heading settled heading" data-level="5.4.8" style="page-break-after: avoid; margin-top: 4em; text-align: left; font-weight: bold; font-style: normal; font-variant: normal; font-size: medium; line-height: normal; font-family: sans-serif; position: relative; color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="secno">5.4.8.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#consume-a-function0" style="color: inherit; text-decoration: underline; background: transparent;">Consume a function</a><a class="self-link" href="#consume-a-function" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 13px; background: transparent;"></a></h4>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="consume-a-function0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">consume a function<a class="self-link" href="#consume-a-function0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Create a function with a name equal to the value of the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="current input token">current input token</a>, and with a value which is initially an empty list.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Repeatedly consume the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#next-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="next input token">next input token</a><span class="Apple-converted-space">&nbsp;</span>and process it as follows:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a class="production css-code" data-link-type="type" href="#typedef-eof-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;eof-token&gt;">&lt;EOF-token&gt;</a></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a href="#tokendef-close-paren" style="color: inherit; text-decoration: underline; background: transparent;">&lt;)-token&gt;</a></dt>
    <dd style="margin: 0px 0px 1em 2em;">Return the function.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">anything else</dt>
    <dd style="margin: 0px 0px 1em 2em;"><a data-link-type="dfn" href="#reconsume-the-current-input-token" style="color: inherit; text-decoration: underline; background: transparent;" title="reconsume the current input token">Reconsume the current input token</a>.<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-component-value0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a component value">Consume a component value</a><span class="Apple-converted-space">&nbsp;</span>and append the returned value to the function’s value.</dd>
</dl>
<h2 id="anb" class="heading settled heading" data-level="6" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">6.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">The<span class="Apple-converted-space">&nbsp;</span><a href="#anb0" style="color: inherit; text-decoration: underline; background: transparent;"><var>An+B</var></a><span class="Apple-converted-space">&nbsp;</span>microsyntax</span><a class="self-link" href="#anb" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Several things in CSS, such as the<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://www.w3.org/TR/selectors4/#nth-child-pseudo" style="color: inherit; text-decoration: underline; background: transparent;" title=":nth-child()">:nth-child()</a><span class="Apple-converted-space">&nbsp;</span>pseudoclass, need to indicate indexes in a list. The<span class="Apple-converted-space">&nbsp;</span><a href="#anb0" style="color: inherit; text-decoration: underline; background: transparent;"><var>An+B</var></a><span class="Apple-converted-space">&nbsp;</span>microsyntax is useful for this, allowing an author to easily indicate single elements or all elements at regularly-spaced intervals in a list.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The<span class="Apple-converted-space">&nbsp;</span><dfn id="anb0" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">An+B<a class="self-link" href="#anb0" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>notation defines an integer step (<dfn id="a" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">A<a class="self-link" href="#a" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>) 
    and offset (<dfn id="b" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">B<a class="self-link" href="#b" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>), and represents the<span class="Apple-converted-space">&nbsp;</span><a href="#anb0" style="color: inherit; text-decoration: underline; background: transparent;"><var>An+B</var></a>th elements in a list, for every positive integer or zero value of<span class="Apple-converted-space">&nbsp;</span><var>n</var>, with the first element in the list having index 1 (not 0).</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    For values of<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;"><var>A</var></a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>greater than 0, this effectively divides the list into groups of<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;"><var>A</var></a><span class="Apple-converted-space">&nbsp;</span>elements (the last group taking the remainder), and selecting the<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a>th 
    element of each group.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The<span class="Apple-converted-space">&nbsp;</span><a href="#anb0" style="color: inherit; text-decoration: underline; background: transparent;"><var>An+B</var></a><span class="Apple-converted-space">&nbsp;</span>notation also accepts the<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="even">even</span><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="odd">odd</span><span class="Apple-converted-space">&nbsp;</span>keywords, which have the same meaning as<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="2n">2n</span><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="2n+1">2n+1</span>, 
    respectively.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    <p style="margin-top: 1em; margin-bottom: 1em;">
        Examples:</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">2n+0   /* represents all of the even elements in the list */
even   /* same */
4n+1   /* represents the 1st, 5th, 9th, 13th, etc. elements in the list */</pre>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The values of<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;"><var>A</var></a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>can be negative, but only the positive results of<span class="Apple-converted-space">&nbsp;</span><a href="#anb0" style="color: inherit; text-decoration: underline; background: transparent;"><var>An+B</var></a>, for<span class="Apple-converted-space">&nbsp;</span><var>n</var><span class="Apple-converted-space">&nbsp;</span>≥ 0, are used.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    <p style="margin-top: 1em; margin-bottom: 1em;">
        Example:</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">-n+6   /* represents the first 6 elements of the list */</pre>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    If both<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;"><var>A</var></a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>are 0, the pseudo-class represents no element in the list.</p>
<h3 id="anb-syntax" class="heading settled heading" data-level="6.1" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">6.1.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Informal Syntax Description</span><a class="self-link" href="#anb-syntax" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <em>This section is non-normative.</em></p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    When<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;"><var>A</var></a><span class="Apple-converted-space">&nbsp;</span>is 0, the<span class="Apple-converted-space">&nbsp;</span><var>An</var><span class="Apple-converted-space">&nbsp;</span>part may be omitted (unless the<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>part is already omitted). When<span class="Apple-converted-space">&nbsp;</span><var>An</var><span class="Apple-converted-space">&nbsp;</span>is not included and<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is non-negative, the<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="+">+</span><span class="Apple-converted-space">&nbsp;</span>sign 
    before<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>(when allowed) may also be omitted. In this case the syntax simplifies to just<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a>.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    <p style="margin-top: 1em; margin-bottom: 1em;">
        Examples:</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">0n+5   /* represents the 5th element in the list */
5      /* same */</pre>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    When<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;"><var>A</var></a><span class="Apple-converted-space">&nbsp;</span>is 1 or -1, the<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">1</code><span class="Apple-converted-space">&nbsp;</span>may be omitted from the rule.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    <p style="margin-top: 1em; margin-bottom: 1em;">
        Examples:</p>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        The following notations are therefore equivalent:</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">1n+0   /* represents all elements in the list */
n+0    /* same */
n      /* same */</pre>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    If<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is 0, then every<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;"><var>A</var></a>th element is picked. In such a case, the<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>+B</var></a><span class="Apple-converted-space">&nbsp;</span>(or<span class="Apple-converted-space">&nbsp;</span><var>-B</var>) part may be omitted unless the<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;"><var>A</var></a><span class="Apple-converted-space">&nbsp;</span>part 
    is already omitted.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    <p style="margin-top: 1em; margin-bottom: 1em;">
        Examples:</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">2n+0   /* represents every even element in the list */
2n     /* same */</pre>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Whitespace is permitted on either side of the<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="+">+</span><span class="Apple-converted-space">&nbsp;</span>or<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="-">-</span><span class="Apple-converted-space">&nbsp;</span>that separates the<span class="Apple-converted-space">&nbsp;</span><var>An</var><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>parts when both are present.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    <p style="margin-top: 1em; margin-bottom: 1em;">
        Valid Examples with white space:</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">3n + 1
+3n - 2
-n+ 6
+6</pre>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        Invalid Examples with white space:</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">3 n
+ 2n
+ 2</pre>
</div>
<h3 id="the-anb-type" class="heading settled heading" data-level="6.2" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">6.2.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">The<span class="Apple-converted-space">&nbsp;</span><a href="#anb-production" style="color: inherit; text-decoration: underline; background: transparent;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;an+b&gt;</code></a><span class="Apple-converted-space">&nbsp;</span>type</span><a class="self-link" href="#the-anb-type" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The<span class="Apple-converted-space">&nbsp;</span><a href="#anb0" style="color: inherit; text-decoration: underline; background: transparent;"><var>An+B</var></a><span class="Apple-converted-space">&nbsp;</span>notation was originally defined using a slightly different tokenizer than the rest of CSS, resulting in a somewhat odd definition when expressed in terms of CSS tokens. This section describes how to recognize the<span class="Apple-converted-space">&nbsp;</span><a href="#anb0" style="color: inherit; text-decoration: underline; background: transparent;"><var>An+B</var></a><span class="Apple-converted-space">&nbsp;</span>notation in terms of CSS tokens (thus defining the<span class="Apple-converted-space">&nbsp;</span><a href="#anb-production" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;an+b&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>type for CSS grammar 
    purposes), and how to interpret the CSS tokens to obtain values for<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;"><var>A</var></a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a>.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The<span class="Apple-converted-space">&nbsp;</span><a href="#anb-production" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;an+b&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>type is defined (using the<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/css3-values/#value-defs" style="color: inherit; text-decoration: underline; background: transparent;">Value Definition Syntax in the Values &amp; Units spec</a>) as:</p>
<pre class="prod" style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">  <dfn id="anb-production" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;an+b&gt;<a class="self-link" href="#anb-production" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn> =
    odd | even |
    <a href="#typedef-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;integer&gt;</var></a> |

    <a href="#typedef-n-dimension" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;n-dimension&gt;</var></a> |
    &#39;+&#39;?</pre>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <sup style="vertical-align: super; font-size: 13px;"><a href="#anb-plus" style="color: inherit; text-decoration: underline; background: transparent;">†</a></sup><span class="Apple-converted-space">&nbsp;</span>n | -n |<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-ndashdigit-dimension" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;ndashdigit-dimension&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>| ‘<code class="css" style="font-family: inherit; font-size: 16px; color: rgb(0, 90, 156);">+</code>’?<sup style="vertical-align: super; font-size: 13px;"><a href="#anb-plus" style="color: inherit; text-decoration: underline; background: transparent;">†</a></sup><span class="Apple-converted-space">&nbsp;</span><a href="#typedef-ndashdigit-ident" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;ndashdigit-ident&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>|<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-dashndashdigit-ident" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;dashndashdigit-ident&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>|<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-n-dimension" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;n-dimension&gt;</var></a><span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signed-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signed-integer&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>| 
    ‘<code class="css" style="font-family: inherit; font-size: 16px; color: rgb(0, 90, 156);">+</code>’?<sup style="vertical-align: super; font-size: 13px;"><a href="#anb-plus" style="color: inherit; text-decoration: underline; background: transparent;">†</a></sup><span class="Apple-converted-space">&nbsp;</span>n<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signed-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signed-integer&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>| -n<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signed-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signed-integer&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>|<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-ndash-dimension" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;ndash-dimension&gt;</var></a><span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>| 
    ‘<code class="css" style="font-family: inherit; font-size: 16px; color: rgb(0, 90, 156);">+</code>’?<sup style="vertical-align: super; font-size: 13px;"><a href="#anb-plus" style="color: inherit; text-decoration: underline; background: transparent;">†</a></sup><span class="Apple-converted-space">&nbsp;</span>n-<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>| -n-<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>|<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-n-dimension" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;n-dimension&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>[‘<code class="css" style="font-family: inherit; font-size: 16px; color: rgb(0, 90, 156);">+</code>’ 
    | ‘<code class="property" style="font-family: inherit; font-size: inherit; color: rgb(0, 90, 156); font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; white-space: nowrap;">-</code>’]<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>‘<code class="css" style="font-family: inherit; font-size: 16px; color: rgb(0, 90, 156);">+</code>’?<sup style="vertical-align: super; font-size: 13px;"><a href="#anb-plus" style="color: inherit; text-decoration: underline; background: transparent;">†</a></sup><span class="Apple-converted-space">&nbsp;</span>n [‘<code class="css" style="font-family: inherit; font-size: 16px; color: rgb(0, 90, 156);">+</code>’ | ‘<code class="property" style="font-family: inherit; font-size: inherit; color: rgb(0, 90, 156); font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; white-space: nowrap;">-</code>’]<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>| 
    -n [‘<code class="css" style="font-family: inherit; font-size: 16px; color: rgb(0, 90, 156);">+</code>’ | ‘<code class="property" style="font-family: inherit; font-size: inherit; color: rgb(0, 90, 156); font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; white-space: nowrap;">-</code>’]<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a></p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    where:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><dfn id="typedef-n-dimension" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;n-dimension&gt;</code><a class="self-link" href="#typedef-n-dimension" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with 
        its type flag set to &quot;integer&quot;, and a unit that is an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#ascii-case-insensitive" style="color: inherit; text-decoration: underline; background: transparent;" title="ascii case-insensitive">ASCII case-insensitive</a><span class="Apple-converted-space">&nbsp;</span>match for &quot;n&quot;</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><dfn id="typedef-ndash-dimension" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;ndash-dimension&gt;</code><a class="self-link" href="#typedef-ndash-dimension" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with 
        its type flag set to &quot;integer&quot;, and a unit that is an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#ascii-case-insensitive" style="color: inherit; text-decoration: underline; background: transparent;" title="ascii case-insensitive">ASCII case-insensitive</a><span class="Apple-converted-space">&nbsp;</span>match for &quot;n-&quot;</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><dfn id="typedef-ndashdigit-dimension" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;ndashdigit-dimension&gt;</code><a class="self-link" href="#typedef-ndashdigit-dimension" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with 
        its type flag set to &quot;integer&quot;, and a unit that is an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#ascii-case-insensitive" style="color: inherit; text-decoration: underline; background: transparent;" title="ascii case-insensitive">ASCII case-insensitive</a><span class="Apple-converted-space">&nbsp;</span>match for &quot;n-*&quot;, where &quot;*&quot; is a series of one or more<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digits">digits</a></li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><dfn id="typedef-ndashdigit-ident" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;ndashdigit-ident&gt;</code><a class="self-link" href="#typedef-ndashdigit-ident" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>is an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>whose 
        value is an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#ascii-case-insensitive" style="color: inherit; text-decoration: underline; background: transparent;" title="ascii case-insensitive">ASCII case-insensitive</a><span class="Apple-converted-space">&nbsp;</span>match for &quot;n-*&quot;, where &quot;*&quot; is a series of one or more<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digits">digits</a></li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><dfn id="typedef-dashndashdigit-ident" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;dashndashdigit-ident&gt;</code><a class="self-link" href="#typedef-dashndashdigit-ident" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>is an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>whose 
        value is an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#ascii-case-insensitive" style="color: inherit; text-decoration: underline; background: transparent;" title="ascii case-insensitive">ASCII case-insensitive</a><span class="Apple-converted-space">&nbsp;</span>match for &quot;-n-*&quot;, where &quot;*&quot; is a series of one or more<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digits">digits</a></li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><dfn id="typedef-integer" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;integer&gt;</code><a class="self-link" href="#typedef-integer" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-number-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;number-token&gt;">&lt;number-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with 
        its type flag set to &quot;integer&quot;</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><dfn id="typedef-signed-integer" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;signed-integer&gt;</code><a class="self-link" href="#typedef-signed-integer" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-number-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;number-token&gt;">&lt;number-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with 
        its type flag set to &quot;integer&quot;, and whose representation starts with &quot;+&quot; or &quot;-&quot;</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><dfn id="typedef-signless-integer" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;signless-integer&gt;</code><a class="self-link" href="#typedef-signless-integer" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-number-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;number-token&gt;">&lt;number-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with 
        its type flag set to &quot;integer&quot;, and whose representation start with a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#digit" style="color: inherit; text-decoration: underline; background: transparent;" title="digit">digit</a></li>
</ul>
<p id="anb-plus" style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <sup style="vertical-align: super; font-size: 13px;">†</sup>: When a plus sign (+) precedes an ident starting with &quot;n&quot;, as in the cases marked above, there must be no whitespace between the two tokens, or else the tokens do not match the above grammar.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The clauses of the production are interpreted as follows:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="odd">odd</span></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>is 2,<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is 1.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="even">even</span></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>is 2,<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is 0.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a href="#typedef-integer" style="color: inherit; text-decoration: underline; background: transparent;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">
        <var>
        &lt;integer&gt;</var></code></a></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>is 0,<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is the integer’s value.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a href="#typedef-n-dimension" style="color: inherit; text-decoration: underline; background: transparent;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">
        <var>
        &lt;n-dimension&gt;</var></code></a></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&#39;+&#39;? n</code></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">-n</code></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>is the dimension’s value, 1, or -1, respectively.<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is 0.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a href="#typedef-ndashdigit-dimension" style="color: inherit; text-decoration: underline; background: transparent;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">
        <var>
        &lt;ndashdigit-dimension&gt;</var></code></a></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&#39;+&#39;?<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-ndashdigit-ident" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;ndashdigit-ident&gt;</var></a></code></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>is the dimension’s value or 1, respectively.<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is the dimension’s unit or ident’s value, respectively, with the first<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>removed and the remainder interpreted as a base-10 number.<span class="Apple-converted-space">&nbsp;</span><span class="note" style="position: relative; padding: 0.1em 0.5em 0.15em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; border-right-width: 0.5em; border-right-style: solid; background: rgb(233, 251, 233);">B 
        is negative.</span></dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a href="#typedef-dashndashdigit-ident" style="color: inherit; text-decoration: underline; background: transparent;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">
        <var>
        &lt;dashndashdigit-ident&gt;</var></code></a></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>is -1.<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is the ident’s value, with the first two<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>removed and the remainder interpreted as a base-10 number.<span class="Apple-converted-space">&nbsp;</span><span class="note" style="position: relative; padding: 0.1em 0.5em 0.15em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; border-right-width: 0.5em; border-right-style: solid; background: rgb(233, 251, 233);">B is negative.</span></dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;"><a href="#typedef-n-dimension" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        &lt;n-dimension&gt;</var></a><span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signed-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signed-integer&gt;</var></a></code></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&#39;+&#39;? n<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signed-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signed-integer&gt;</var></a></code></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">-n<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signed-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signed-integer&gt;</var></a></code></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>is the dimension’s value, 1, or -1, respectively.<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is the integer’s value.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;"><a href="#typedef-ndash-dimension" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        &lt;ndash-dimension&gt;</var></a><span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a></code></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&#39;+&#39;? n-<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a></code></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">-n-<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a></code></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>is the dimension’s value, 1, or -1, respectively.<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is the negation of the integer’s value.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;"><a href="#typedef-n-dimension" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        &lt;n-dimension&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>[&#39;+&#39; | &#39;-&#39;]<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a></code></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&#39;+&#39;? n [&#39;+&#39; | &#39;-&#39;]<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a></code></dt>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">-n [&#39;+&#39; | &#39;-&#39;]<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;signless-integer&gt;</var></a></code></dt>
    <dd style="margin: 0px 0px 1em 2em;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>is the dimension’s value, 1, or -1, respectively.<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is the integer’s value. If a<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="-">-</span><span class="Apple-converted-space">&nbsp;</span>was provided between the two,<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is instead the negation of the integer’s value.</dd>
</dl>
<h2 id="rule-defs" class="heading settled heading" data-level="7" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">7.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Defining Grammars for Rules and Other Values</span><a class="self-link" href="#rule-defs" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/css3-values/" style="color: inherit; text-decoration: underline; background: transparent;">Values</a><span class="Apple-converted-space">&nbsp;</span>spec defines how to specify a grammar for properties. This section does the same, but for rules.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Just like in property grammars, the notation<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;foo&gt;</code><span class="Apple-converted-space">&nbsp;</span>refers to the &quot;foo&quot; grammar term, assumed to be defined elsewhere. Substituting the<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;foo&gt;</code><span class="Apple-converted-space">&nbsp;</span>for its definition results in a semantically identical grammar.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Several types of tokens are written literally, without quotes:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a>s (such as<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="auto">auto</span>,<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="disc">disc</span>, etc), which are simply written as their value.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a>s, which are written as an @ character followed by the token’s value, like &quot;@media&quot;.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a class="production css-code" data-link-type="type" href="#typedef-function-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;function-token&gt;">&lt;function-token&gt;</a>s, which are written as the function name followed by a ( character, like &quot;translate(&quot;.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">The<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-colon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;colon-token&gt;">&lt;colon-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>(written as<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">:</code>),<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-comma-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;comma-token&gt;">&lt;comma-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>(written as<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">,</code>),<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-semicolon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;semicolon-token&gt;">&lt;semicolon-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>(written 
        as<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">;</code>),<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-paren" style="color: inherit; text-decoration: underline; background: transparent;">&lt;(-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-paren" style="color: inherit; text-decoration: underline; background: transparent;">&lt;)-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;{-token&gt;</a>, and<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;}-token&gt;</a>s.</li>
</ul>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Tokens match if their value is an<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#ascii-case-insensitive" style="color: inherit; text-decoration: underline; background: transparent;" title="ascii case-insensitive">ASCII case-insensitive</a><span class="Apple-converted-space">&nbsp;</span>match for the value defined in the grammar.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Although it is possible, with<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#escaping0" style="color: inherit; text-decoration: underline; background: transparent;" title="escaping">escaping</a>, to construct an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>whose value ends with<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">(</code><span class="Apple-converted-space">&nbsp;</span>or starts with<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">@</code>, such a tokens is not a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-function-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;function-token&gt;">&lt;function-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>or 
    an<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>and does not match corresponding grammar definitions.<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a>s are written with their value enclosed in single quotes. For example, a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>containing 
    the &quot;+&quot;<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>is written as<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&#39;+&#39;</code>. Similarly, the<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-square" style="color: inherit; text-decoration: underline; background: transparent;">&lt;[-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-square" style="color: inherit; text-decoration: underline; background: transparent;">&lt;]-token&gt;</a>s must be written in single quotes, as they’re used by the syntax of the grammar itself to 
    group clauses.<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>is never indicated in the grammar;<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a>s are allowed before, after, and between any two tokens, unless explicitly specified otherwise in prose definitions. (For example, if the prelude of a rule is a selector, whitespace is significant.)</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    When defining a function or a block, the ending token must be specified in the grammar, but if it’s not present in the eventual token stream, it still matches.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    For example, the syntax of the<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://www.w3.org/TR/css3-transforms/#funcdef-translatex" style="color: inherit; text-decoration: underline; background: transparent;" title="translatex()">translateX()</a><span class="Apple-converted-space">&nbsp;</span>function is:<pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">translateX( <a class="production css-code" data-link-type="type" href="http://www.w3.org/TR/css3-2d-transforms/#typedef-translation-value" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;translation-value&gt;">&lt;translation-value&gt;</a> )</pre>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        However, the stylesheet may end with the function unclosed, like:</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">.foo { transform: translate(50px</pre>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        The CSS parser parses this as a style rule containing one declaration, whose value is a function named &quot;translate&quot;. This matches the above grammar, even though the ending token didn’t appear in the token stream, because by the time the parser is finished, the presence of the ending token is no longer possible to determine; all you have is the fact that there’s a block and a function.</p>
</div>
<h3 id="declaration-rule-list" class="heading settled heading" data-level="7.1" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">7.1.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Defining Block Contents: the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-declaration-list" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;declaration-list&gt;">&lt;declaration-list&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-rule-list" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;rule-list&gt;">&lt;rule-list&gt;</a>, 
    and<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-stylesheet" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;stylesheet&gt;">&lt;stylesheet&gt;</a><span class="Apple-converted-space">&nbsp;</span>productions</span><a class="self-link" href="#declaration-rule-list" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The CSS parser is agnostic as to the contents of blocks, such as those that come at the end of some at-rules. Defining the generic grammar of the blocks in terms of tokens is non-trivial, but there are dedicated and unambiguous algorithms defined for parsing this.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-declaration-list" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;declaration-list&gt;<a class="self-link" href="#typedef-declaration-list" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>production represents a list of declarations. It may only be used in grammars as the sole value in a block, and represents that the contents of the block must be parsed using the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-list-of-declarations0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a list of declarations">consume 
    a list of declarations</a><span class="Apple-converted-space">&nbsp;</span>algorithm.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Similarly, the<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-rule-list" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;rule-list&gt;<a class="self-link" href="#typedef-rule-list" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>production represents a list of rules, and may only be used in grammars as the sole value in a block. It represents that the contents of the block must be parsed using the<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#consume-a-list-of-rules0" style="color: inherit; text-decoration: underline; background: transparent;" title="consume a list of rules">consume 
    a list of rules</a><span class="Apple-converted-space">&nbsp;</span>algorithm.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Finally, the<span class="Apple-converted-space">&nbsp;</span><dfn id="typedef-stylesheet" class="css-code" data-dfn-type="type" data-export="" style="font-weight: bolder;">&lt;stylesheet&gt;<a class="self-link" href="#typedef-stylesheet" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>production represents a list of rules. It is identical to<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-rule-list" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;rule-list&gt;">&lt;rule-list&gt;</a>, except that 
    blocks using it default to accepting all rules that aren’t otherwise limited to a particular context.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    For example, the<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://www.w3.org/TR/css-fonts-3/#at-font-face-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="@font-face">@font-face</a><span class="Apple-converted-space">&nbsp;</span>rule is defined to have an empty prelude, and to contain a list of declarations. This is expressed with the following grammar:<pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">@font-face { <a class="production css-code" data-link-type="type" href="#typedef-declaration-list" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;declaration-list&gt;">&lt;declaration-list&gt;</a> }</pre>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        This is a complete and sufficient definition of the rule’s grammar.</p>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        For another example,<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="@keyframes">@keyframes</span><span class="Apple-converted-space">&nbsp;</span>rules are more complex, interpreting their prelude as a name and containing keyframes rules in their block Their grammar is:</p>
    <pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">@keyframes <a class="production css-code" data-link-type="type" title="&lt;keyframes-name&gt;">&lt;keyframes-name&gt;</a> { <a class="production css-code" data-link-type="type" href="#typedef-rule-list" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;rule-list&gt;">&lt;rule-list&gt;</a> }</pre>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    For rules that use<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-declaration-list" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;declaration-list&gt;">&lt;declaration-list&gt;</a>, the spec for the rule must define which properties, descriptors, and/or at-rules are valid inside the rule; this may be as simple as saying &quot;The @foo rule accepts the properties/descriptors defined in this specification/section.&quot;, and extension specs may simply say &quot;The @foo rule additionally accepts the following properties/descriptors.&quot;. Any declarations or at-rules found inside the block that are not defined as valid must be removed from the rule’s value.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Within a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-declaration-list" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;declaration-list&gt;">&lt;declaration-list&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">!important</code><span class="Apple-converted-space">&nbsp;</span>is automatically invalid on any descriptors. If the rule accepts properties, the spec for the rule must define whether the properties interact with the cascade, and with what specificity. If they don’t interact with the cascade, properties containing<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">!important</code><span class="Apple-converted-space">&nbsp;</span>are automatically invalid; otherwise using<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">!important</code><span class="Apple-converted-space">&nbsp;</span>is 
    valid and has its usual effect on the cascade origin of the property.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    For example, the grammar for<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://www.w3.org/TR/css-fonts-3/#at-font-face-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="@font-face">@font-face</a><span class="Apple-converted-space">&nbsp;</span>in the previous example must, in addition to what is written there, define that the allowed declarations are the descriptors defined in the Fonts spec.</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    For rules that use<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-rule-list" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;rule-list&gt;">&lt;rule-list&gt;</a>, the spec for the rule must define what types of rules are valid inside the rule, same as<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-declaration-list" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;declaration-list&gt;">&lt;declaration-list&gt;</a>, and unrecognized rules must similarly be removed from the rule’s value.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    For example, the grammar for<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="@keyframes">@keyframes</span><span class="Apple-converted-space">&nbsp;</span>in the previous example must, in addition to what is written there, define that the only allowed rules are<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" title="&lt;keyframe-rule&gt;">&lt;keyframe-rule&gt;</a>s, which are defined as:<pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;"><a class="production css-code" data-link-type="type" title="&lt;keyframe-rule&gt;">&lt;keyframe-rule&gt;</a> = <a class="production css-code" data-link-type="type" title="&lt;keyframe-selector&gt;">&lt;keyframe-selector&gt;</a> { <a class="production css-code" data-link-type="type" href="#typedef-declaration-list" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;declaration-list&gt;">&lt;declaration-list&gt;</a> }</pre>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        Keyframe rules, then, must further define that they accept as declarations all animatable CSS properties, plus the<span class="Apple-converted-space">&nbsp;</span><a class="property" data-link-type="propdesc" href="http://www.w3.org/TR/css3-animations/#animation-timing-function" style="color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; white-space: nowrap; text-decoration: underline; background: transparent;" title="animation-timing-function">animation-timing-function</a><span class="Apple-converted-space">&nbsp;</span>property, but that they do not interact with the cascade.</p>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    For rules that use<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-stylesheet" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;stylesheet&gt;">&lt;stylesheet&gt;</a>, all rules are allowed by default, but the spec for the rule may define what types of rules are<span class="Apple-converted-space">&nbsp;</span><em>invalid</em><span class="Apple-converted-space">&nbsp;</span>inside the rule.</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    For example, the<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://dev.w3.org/csswg/css-conditional-3/#at-ruledef-media" style="color: inherit; text-decoration: underline; background: transparent;" title="@media">@media</a><span class="Apple-converted-space">&nbsp;</span>rule accepts anything that can be placed in a stylesheet, except more<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://dev.w3.org/csswg/css-conditional-3/#at-ruledef-media" style="color: inherit; text-decoration: underline; background: transparent;" title="@media">@media</a><span class="Apple-converted-space">&nbsp;</span>rules. As such, its grammar is:<pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">@media <a class="production css-code" data-link-type="type" href="http://dev.w3.org/csswg/mediaqueries-4/#typedef-media-query-list" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;media-query-list&gt;">&lt;media-query-list&gt;</a> { <a class="production css-code" data-link-type="type" href="#typedef-stylesheet" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;stylesheet&gt;">&lt;stylesheet&gt;</a> }</pre>
    <p style="margin-top: 1em; margin-bottom: 1em;">
        It additionally defines a restriction that the<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-stylesheet" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;stylesheet&gt;">&lt;stylesheet&gt;</a><span class="Apple-converted-space">&nbsp;</span>can not contain<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://dev.w3.org/csswg/css-conditional-3/#at-ruledef-media" style="color: inherit; text-decoration: underline; background: transparent;" title="@media">@media</a><span class="Apple-converted-space">&nbsp;</span>rules, which causes them to be dropped from the outer rule’s value if they appear.</p>
</div>
<h2 id="css-stylesheets" class="heading settled heading" data-level="8" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">8.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">CSS stylesheets</span><a class="self-link" href="#css-stylesheets" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To<span class="Apple-converted-space">&nbsp;</span><dfn id="parse-a-css-stylesheet" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">parse a CSS stylesheet<a class="self-link" href="#parse-a-css-stylesheet" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn>, first<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#parse-a-stylesheet0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a stylesheet">parse a stylesheet</a>. Interpret all of the resulting top-level<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#qualified-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="qualified rules">qualified 
    rules</a><span class="Apple-converted-space">&nbsp;</span>as<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#style-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="style rules">style rules</a>, defined below.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    If any style rule is invalid, or any at-rule is not recognized or is invalid according to its grammar or context, it’s a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#parse-error" style="color: inherit; text-decoration: underline; background: transparent;" title="parse error">parse error</a>. Discard that rule.</p>
<h3 id="style-rules" class="heading settled heading" data-level="8.1" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">8.1.<span class="Apple-converted-space">&nbsp;</span></span><a class="content" href="#style-rule" style="color: inherit; text-decoration: underline; background: transparent;">Style rules</a><a class="self-link" href="#style-rules" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    A<span class="Apple-converted-space">&nbsp;</span><dfn id="style-rule" data-dfn-type="dfn" data-noexport="" style="font-weight: bolder;">style rule<a class="self-link" href="#style-rule" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn><span class="Apple-converted-space">&nbsp;</span>is a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#qualified-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="qualified rule">qualified rule</a><span class="Apple-converted-space">&nbsp;</span>that associates a<span class="Apple-converted-space">&nbsp;</span><a href="http://dev.w3.org/csswg/selectors4/#selector-list" style="color: inherit; text-decoration: underline; background: transparent;">selector 
    list</a><span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="normative" data-link-type="biblio" href="#select" style="color: inherit; text-decoration: underline; background: transparent;" title="select">[SELECT]</a><span class="Apple-converted-space">&nbsp;</span>with a list of property declarations. They are also called<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/CSS21/syndata.html#rule-sets" style="color: inherit; text-decoration: underline; background: transparent;">rule sets</a><span class="Apple-converted-space">&nbsp;</span>in<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="normative" data-link-type="biblio" href="#css21" style="color: inherit; text-decoration: underline; background: transparent;" title="css21">[CSS21]</a>. CSS Cascading and Inheritance<a data-biblio-type="normative" data-link-type="biblio" href="#css3cascade" style="color: inherit; text-decoration: underline; background: transparent;" title="css3cascade">[CSS3CASCADE]</a><span class="Apple-converted-space">&nbsp;</span>defines 
    how the declarations inside of style rules participate in the cascade.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The prelude of the qualified rule is parsed as a<span class="Apple-converted-space">&nbsp;</span><a href="http://dev.w3.org/csswg/selectors4/#selector-list" style="color: inherit; text-decoration: underline; background: transparent;">selector list</a>. If this results in an<span class="Apple-converted-space">&nbsp;</span><a href="http://dev.w3.org/csswg/selectors4/#invalid" style="color: inherit; text-decoration: underline; background: transparent;">invalid selector list</a>, the entire style rule is invalid.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The content of the qualified rule’s block is parsed as a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#parse-a-list-of-declarations0" style="color: inherit; text-decoration: underline; background: transparent;" title="parse a list of declarations">list of declarations</a>. Unless defined otherwise by another specification or a future level of this specification, at-rules in that list are invalid and must be ignored. Declaration for an unknown CSS property or whose value does not match the syntax defined by the property are invalid and must be ignored. The validity of the style rule’s contents have no effect on the validity of the style rule itself. Unless otherwise specified, property names are<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#ascii-case-insensitive" style="color: inherit; text-decoration: underline; background: transparent;" title="ascii case-insensitive">ASCII 
    case-insensitive</a>.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: The names of Custom Properties<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="informative" data-link-type="biblio" href="#css-variables" style="color: inherit; text-decoration: underline; background: transparent;" title="css-variables">[CSS-VARIABLES]</a><span class="Apple-converted-space">&nbsp;</span>are case-sensitive.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <a data-link-type="dfn" href="#qualified-rule" style="color: inherit; text-decoration: underline; background: transparent;" title="qualified rules">Qualified rules</a><span class="Apple-converted-space">&nbsp;</span>at the top-level of a CSS stylesheet are style rules. Qualified rules in other contexts may or may not be style rules, as defined by the context.</p>
<p class="example" style="margin: 1em 0px; page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    For example, qualified rules inside<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="http://dev.w3.org/csswg/css-conditional-3/#at-ruledef-media" style="color: inherit; text-decoration: underline; background: transparent;" title="@media">@media</a><span class="Apple-converted-space">&nbsp;</span>rules<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="informative" data-link-type="biblio" href="#css3-conditional" style="color: inherit; text-decoration: underline; background: transparent;" title="css3-conditional">[CSS3-CONDITIONAL]</a><span class="Apple-converted-space">&nbsp;</span>are style rules, but qualified rules inside<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="@keyframes">@keyframes</span><span class="Apple-converted-space">&nbsp;</span>rules are not<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="informative" data-link-type="biblio" href="#css3-animations" style="color: inherit; text-decoration: underline; background: transparent;" title="css3-animations">[CSS3-ANIMATIONS]</a>.</p>
<h3 id="charset-rule" class="heading settled heading" data-level="8.2" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">8.2.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">The<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="#at-ruledef-charset" style="color: inherit; text-decoration: underline; background: transparent;" title="@charset">@charset</a><span class="Apple-converted-space">&nbsp;</span>Rule</span><a class="self-link" href="#charset-rule" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The @charset rule is an artifact of the algorithm used to<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#determine-the-fallback-encoding" style="color: inherit; text-decoration: underline; background: transparent;" title="determine the fallback encoding">determine the fallback encoding</a><span class="Apple-converted-space">&nbsp;</span>for the stylesheet. That algorithm looks for a specific byte sequence as the very first few bytes in the file, which has the syntactic form of an @-rule. Those bytes are not discarded from the input, whether or not they influence the encoding actually used to process the stylesheet.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Therefore, the stylesheet parser recognizes an @-rule with the general syntax</p>
<pre class="prod" style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><dfn id="at-ruledef-charset" class="css-code" data-dfn-type="at-rule" data-export="" style="font-weight: bolder;">@charset<a class="self-link" href="#at-ruledef-charset" style="color: white; text-decoration: underline; position: absolute; top: auto; left: auto; width: 1.5em; height: 1.5em; text-align: center; border: none; transition: opacity 0.2s, background-color 0.2s, color 0.2s; -webkit-transition: opacity 0.2s, background-color 0.2s, color 0.2s; opacity: 0; font-style: normal; background: gray;"></a></dfn> = @charset <a class="production css-code" data-link-type="type" href="http://www.w3.org/TR/css3-values/#string-value" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;string&gt;">&lt;string&gt;</a> ;</pre>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    and, for backward compatibility, includes it in the object model for the stylesheet. Modifying, adding, or removing an @charset rule via the object model has no effect (in particular it does<span class="Apple-converted-space">&nbsp;</span><strong>not</strong><span class="Apple-converted-space">&nbsp;</span>cause the stylesheet to be rescanned in a different encoding). The @charset rule is invalid if it is not the very first, top-level rule in the stylesheet, but it is parsed according to the normal syntax for @-rules, which are less restrictive than the algorithm that determines the fallback encoding. Therefore, an @charset rule may appear in the object model even if it was ignored by that algorithm. (For instance, if it was written with extra whitespace or with single rather than double quotes.)</p>
<h2 id="serialization" class="heading settled heading" data-level="9" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">9.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Serialization</span><a class="self-link" href="#serialization" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The tokenizer described in this specification does not produce tokens for comments, or otherwise preserve them in any way. Implementations may preserve the contents of comments and their location in the token stream. If they do, this preserved information must have no effect on the parsing step.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    This specification does not define how to serialize CSS in general, leaving that task to the CSSOM and individual feature specifications. In particular, the serialization of comments an whitespace is not defined.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The only requirement for serialization is that it must &quot;round-trip&quot; with parsing, that is, parsing the stylesheet must produce the same data structures as parsing, serializing, and parsing again, except for consecutive<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a>s, which may be collapsed into a single token.</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: This exception can exist because CSS grammars always interpret any amount of whitespace as identical to a single space.</p>
<div id="serialization-tables" class="note" style="position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    <a class="self-link" href="#serialization-tables" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>To satisfy this requirement:<p style="margin-top: 1em; margin-bottom: 1em;">
    </p>
    <ul style="margin-left: 0px; padding-left: 2em;">
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">A<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>containing U+005C REVERSE SOLIDUS (\) must be serialized as U+005C REVERSE SOLIDUS followed by a<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#newline" style="color: inherit; text-decoration: underline; background: transparent;" title="newline">newline</a>. (The tokenizer only ever emits such a token followed by a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;whitespace-token&gt;">&lt;whitespace-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>that 
            starts with a newline.)</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">A<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-hash-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;hash-token&gt;">&lt;hash-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with the &quot;unrestricted&quot; type flag may not need as much escaping as the same token with the &quot;id&quot; type flag.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">The unit of a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>may need escaping to disambiguate with scientific notation.</li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">For any consecutive pair of tokens, if the first token shows up in the row headings of either of the following two tables, and the second token shows up in the column headings, and there’s a ✗ in the cell denoted by the intersection of the chosen row and column, the pair of tokens must be serialized with a comment between them.<p style="margin-top: 0px; margin-bottom: 1em;">
            If the tokenizer preserves comments, the preserved comment should be used; otherwise, an empty comment (<code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">/**/</code>) must be inserted. (Preserved comments may be reinserted even if the following tables don’t require a comment between two tokens.)</p>
            <p style="margin-top: 1em; margin-bottom: 1em;">
                Single characters in the row and column headings represent a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>with that value, except for &quot;<code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">(</code>&quot;, which represents a<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-paren" style="color: inherit; text-decoration: underline; background: transparent;">(-token</a>.</p>
        </li>
    </ul>
    <table class="data" style="margin: 1em auto; border-collapse: collapse; width: auto; border: hidden; text-align: center;">
        <tbody style="color: inherit; border-bottom-width: 2px; border-bottom-style: solid;">
            <tr>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">ident</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">function</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">url</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">bad url</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">-</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">number</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">percentage</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">dimension</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">unicode range</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">CDC</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">(</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">?</th>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">ident</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">at-keyword</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">hash</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">dimension</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">#</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">-</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">number</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">@</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">unicode range</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">.</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">+</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
        </tbody>
    </table>
    <table class="data" style="margin: 1em auto; border-collapse: collapse; width: auto; border: hidden; text-align: center;">
        <tbody style="color: inherit; border-bottom-width: 2px; border-bottom-style: solid;">
            <tr>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">=</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">|</th>
                <th style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid; font-size: 13px; line-height: normal;">*</th>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">$</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">*</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">^</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">~</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">|</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
            </tr>
            <tr>
                <th style="font-family: sans-serif; padding: 0.5em 1em 0.5em 0.5em; border-width: 1px 2px 1px 1px; border-top-color: silver; border-bottom-color: silver; border-left-color: silver; border-top-style: solid; text-align: right; color: inherit; border-right-style: solid; font-size: 13px; line-height: normal;">/</th>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;"></td>
                <td style="font-family: sans-serif; padding: 0.5em; border-width: 1px; border-color: silver; border-top-style: solid;">✗</td>
            </tr>
        </tbody>
    </table>
</div>
<h3 id="serializing-anb" class="heading settled heading" data-level="9.1" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">9.1.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Serializing<span class="Apple-converted-space">&nbsp;</span><a href="#anb-production" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;an+b&gt;</var></a></span><a class="self-link" href="#serializing-anb" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To serialize an<span class="Apple-converted-space">&nbsp;</span><a href="#anb-production" style="color: inherit; text-decoration: underline; background: transparent;"><var>&lt;an+b&gt;</var></a><span class="Apple-converted-space">&nbsp;</span>value, let<span class="Apple-converted-space">&nbsp;</span><var>s</var><span class="Apple-converted-space">&nbsp;</span>initially be the empty string:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>are both zero</dt>
    <dd style="margin: 0px 0px 1em 2em;">Append &quot;0&quot; to<span class="Apple-converted-space">&nbsp;</span><var>s</var>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>is zero,<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is non-zero</dt>
    <dd style="margin: 0px 0px 1em 2em;">Serialize<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>and append it to<span class="Apple-converted-space">&nbsp;</span><var>s</var>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>is non-zero,<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is zero</dt>
    <dd style="margin: 0px 0px 1em 2em;">Serialize<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;"><var>A</var></a><span class="Apple-converted-space">&nbsp;</span>and append it to<span class="Apple-converted-space">&nbsp;</span><var>s</var>. Append &quot;n&quot; to<span class="Apple-converted-space">&nbsp;</span><var>s</var>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;"><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;">
        <var>
        A</var></a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>are both non-zero</dt>
    <dd style="margin: 0px 0px 1em 2em;">Serialize<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; background: transparent;"><var>A</var></a><span class="Apple-converted-space">&nbsp;</span>and append it to<span class="Apple-converted-space">&nbsp;</span><var>s</var>. Append &quot;n&quot; to<span class="Apple-converted-space">&nbsp;</span><var>s</var>. If<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>is positive, append &quot;+&quot; to<span class="Apple-converted-space">&nbsp;</span><var>s</var><span class="Apple-converted-space">&nbsp;</span>Serialize<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; background: transparent;"><var>B</var></a><span class="Apple-converted-space">&nbsp;</span>and 
        append it to<span class="Apple-converted-space">&nbsp;</span><var>s</var>.</dd>
</dl>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Return<span class="Apple-converted-space">&nbsp;</span><var>s</var>.</p>
<h2 id="changes" class="heading settled heading" data-level="10" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">10.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Changes</span><a class="self-link" href="#changes" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <em>This section is non-normative.</em></p>
<h3 id="changes-WD-20131105" class="heading settled heading" data-level="10.1" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">10.1.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Changes from the 5 November 2013 Last Call Working Draft</span><a class="self-link" href="#changes-WD-20131105" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">The<span class="Apple-converted-space">&nbsp;</span><a href="#serialization" style="color: inherit; text-decoration: underline; background: transparent;">Serialization</a><span class="Apple-converted-space">&nbsp;</span>section has been rewritten to make only the &quot;round-trip&quot; requirement normative, and move the details of how to achieve it into a note. Some corner cases in these details have been fixed.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a data-biblio-type="informative" data-link-type="biblio" href="#encoding" style="color: inherit; text-decoration: underline; background: transparent;" title="encoding">[ENCODING]</a><span class="Apple-converted-space">&nbsp;</span>has been added to the list of normative references. It was already referenced in normative text before, just not listed as such.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">In the algorithm to<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#determine-the-fallback-encoding" style="color: inherit; text-decoration: underline; background: transparent;" title="determine the fallback encoding">determine the fallback encoding</a><span class="Apple-converted-space">&nbsp;</span>of a stylesheet, limit the<span class="Apple-converted-space">&nbsp;</span><a href="#at-ruledef-charset" style="color: inherit; text-decoration: underline; background: transparent;"><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">@charset</code></a><span class="Apple-converted-space">&nbsp;</span>byte sequence to 1024 bytes. This aligns with what HTML does for<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">&lt;meta 
        charset&gt;</code><span class="Apple-converted-space">&nbsp;</span>and makes sure the size of the sequence is bounded. This only makes a difference with leading or trailing whitespace in the encoding label:<pre style="page-break-inside: avoid; margin-top: 1em; margin-bottom: 1em; font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em; margin-left: 2em;">@charset &quot;   <em>(lots of whitespace)</em>   utf-8&quot;;</pre>
    </li>
</ul>
<h3 id="changes-WD-20130919" class="heading settled heading" data-level="10.2" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">10.2.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Changes from the 19 September 2013 Working Draft</span><a class="self-link" href="#changes-WD-20130919" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">The concept of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#environment-encoding" style="color: inherit; text-decoration: underline; background: transparent;" title="environment encoding">environment encoding</a><span class="Apple-converted-space">&nbsp;</span>was added. The behavior does not change, but some of the definitions should be moved to the relevant specs.</li>
</ul>
<h3 id="changes-css21" class="heading settled heading" data-level="10.3" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">10.3.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Changes from CSS 2.1 and Selectors Level 3</span><a class="self-link" href="#changes-css21" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note: The point of this spec is to match reality; changes from CSS2.1 are nearly always because CSS 2.1 specified something that doesn’t match actual browser behavior, or left something unspecified. If some detail doesn’t match browsers, please let me know as it’s almost certainly unintentional.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Changes in decoding from a byte stream:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Only detect<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="#at-ruledef-charset" style="color: inherit; text-decoration: underline; background: transparent;" title="@charset">@charset</a><span class="Apple-converted-space">&nbsp;</span>rules in ASCII-compatible byte patterns.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Ignore<span class="Apple-converted-space">&nbsp;</span><a class="css" data-link-type="maybe" href="#at-ruledef-charset" style="color: inherit; text-decoration: underline; background: transparent;" title="@charset">@charset</a><span class="Apple-converted-space">&nbsp;</span>rules that specify an ASCII-incompatible encoding, as that would cause the rule itself to not decode properly.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Refer to<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="normative" data-link-type="biblio" href="#encoding" style="color: inherit; text-decoration: underline; background: transparent;" title="encoding">[ENCODING]</a><span class="Apple-converted-space">&nbsp;</span>rather than the IANA registery for character encodings.</li>
</ul>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Tokenization changes:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Any U+0000 NULL<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code point">code point</a><span class="Apple-converted-space">&nbsp;</span>in the CSS source is replaced with U+FFFD REPLACEMENT CHARACTER.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Any hexadecimal escape sequence such as<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="\0">\0</span><span class="Apple-converted-space">&nbsp;</span>that evaluates to zero produce U+FFFD REPLACEMENT CHARACTER rather than U+0000 NULL.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">The definition of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#non-ascii-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="non-ascii code point">non-ASCII code point</a><span class="Apple-converted-space">&nbsp;</span>was changed to be consistent with every definition of ASCII. This affects<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="code points">code points</a><span class="Apple-converted-space">&nbsp;</span>U+0080 to U+009F, which are now<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#name-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="name code points">name 
        code points</a>rather than<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a>s, like the rest of<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#non-ascii-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="non-ascii code points">non-ASCII code points</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Tokenization does not emit COMMENT or BAD_COMMENT tokens anymore. BAD_COMMENT is now considered the same as a normal token (not an error).<span class="Apple-converted-space">&nbsp;</span><a href="#serialization" style="color: inherit; text-decoration: underline; background: transparent;">Serialization</a><span class="Apple-converted-space">&nbsp;</span>is responsible for inserting comments as necessary between tokens that need to be separated, e.g. two consecutive<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a>s.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">The<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-unicode-range-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;unicode-range-token&gt;">&lt;unicode-range-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>is now more restrictive, and doesn’t include non-sensical patterns that the 2.1 definition allowed.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Apply the<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/CSS21/syndata.html#unexpected-eof" style="color: inherit; text-decoration: underline; background: transparent;">EOF error handling rule</a><span class="Apple-converted-space">&nbsp;</span>in the tokenizer and emit normal<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-string-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;string-token&gt;">&lt;string-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>rather 
        than BAD_STRING or BAD_URI on EOF.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a class="production css-code" data-link-type="type" href="#typedef-prefix-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;prefix-match-token&gt;">&lt;prefix-match-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-suffix-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;suffix-match-token&gt;">&lt;suffix-match-token&gt;</a>, and<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-substring-match-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;substring-match-token&gt;">&lt;substring-match-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>have 
        been imported from Selectors 3.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">The BAD_URI token (now<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a>) is &quot;self-contained&quot;. In other words, once the tokenizer realizes it’s in a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;bad-url-token&gt;">&lt;bad-url-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>rather than a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-url-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;url-token&gt;">&lt;url-token&gt;</a>, 
        it just seeks forward to look for the closing ), ignoring everything else. This behavior is simpler than treating it like a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-function-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;function-token&gt;">&lt;function-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>and paying attention to opened blocks and such. Only WebKit exhibits this behavior, but it doesn’t appear that we’ve gotten any compat bugs from it.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">The<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-comma-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;comma-token&gt;">&lt;comma-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>has been added.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a class="production css-code" data-link-type="type" href="#typedef-number-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;number-token&gt;">&lt;number-token&gt;</a>,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-number-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;number-token&gt;">&lt;number-token&gt;</a>, and<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>have been changed to include the preceding +/- sign as 
        part of their value (rather than as a separate<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-delim-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;delim-token&gt;">&lt;delim-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>that needs to be manually handled every time the token is mentioned in other specs). The only consequence of this is that comments can no longer be inserted between the sign and the number.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Scientific notation is supported for numbers/percentages/dimensions to match SVG, per WG resolution.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;"><a class="production css-code" data-link-type="type" href="#typedef-column-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;column-token&gt;">&lt;column-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>has been added, to keep Selectors parsing in single-token lookahead.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Hexadecimal escape for<span class="Apple-converted-space">&nbsp;</span><a data-link-type="dfn" href="#surrogate-code-point" style="color: inherit; text-decoration: underline; background: transparent;" title="surrogate code points">surrogate code points</a><span class="Apple-converted-space">&nbsp;</span>now emit a replacement character rather than the surrogate. This allows implementations to safely use UTF-16 internally.</li>
</ul>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Parsing changes:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Any list of declaration now also accepts at-rules, like<span class="Apple-converted-space">&nbsp;</span><span class="css" data-link-type="maybe" style="color: rgb(0, 90, 156);" title="@page">@page</span>, per WG resolution. This makes a difference in error handling even if no such at-rules are defined yet: an at-rule, valid or not, ends and lets the next declaration being at a {} block without a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-semicolon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;semicolon-token&gt;">&lt;semicolon-token&gt;</a>.</li>
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">The handling of some miscellanous &quot;special&quot; tokens (like an unmatched<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-curly" style="color: inherit; text-decoration: underline; background: transparent;">&lt;}-token&gt;</a>) showing up in various places in the grammar has been specified with some reasonable behavior shown by at least one browser. Previously, stylesheets with those tokens in those places just didn’t match the stylesheet grammar at all, so their handling was totally undefined. Specifically:<p style="margin-top: 1em; margin-bottom: 1em;">
        </p>
        <ul style="margin-left: 0px; padding-left: 2em;">
            <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">[] blocks, () blocks and functions can now contain {} blocks,<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a>s or<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-semicolon-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;semicolon-token&gt;">&lt;semicolon-token&gt;</a>s</li>
            <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Qualified rule preludes can now contain semicolons</li>
            <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">Qualified rule and at-rule preludes can now contain<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;at-keyword-token&gt;">&lt;at-keyword-token&gt;</a>s</li>
        </ul>
    </li>
</ul>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <a href="#anb0" style="color: inherit; text-decoration: underline; background: transparent;">
    <var>
    An+B</var></a><span class="Apple-converted-space">&nbsp;</span>changes from Selectors Level 3<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="informative" data-link-type="biblio" href="#select" style="color: inherit; text-decoration: underline; background: transparent;" title="select">[SELECT]</a>:</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
</p>
<ul style="margin-left: 0px; padding-left: 2em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">The<span class="Apple-converted-space">&nbsp;</span><a href="#anb0" style="color: inherit; text-decoration: underline; background: transparent;"><var>An+B</var></a><span class="Apple-converted-space">&nbsp;</span>microsyntax has now been formally defined in terms of CSS tokens, rather than with a separate tokenizer. This has resulted in minor differences:<p style="margin-top: 1em; margin-bottom: 1em;">
        </p>
        <ul style="margin-left: 0px; padding-left: 2em;">
            <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative;">In some cases, minus signs or digits can be escaped (when they appear as part of the unit of a<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;dimension-token&gt;">&lt;dimension-token&gt;</a><span class="Apple-converted-space">&nbsp;</span>or<span class="Apple-converted-space">&nbsp;</span><a class="production css-code" data-link-type="type" href="#typedef-ident-token" style="color: inherit; text-decoration: underline; background: transparent;" title="&lt;ident-token&gt;">&lt;ident-token&gt;</a>).</li>
        </ul>
    </li>
</ul>
<h2 id="acknowledgments" class="no-num heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="content">Acknowledgments</span><a class="self-link" href="#acknowledgments" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Thanks for feedback and contributions from Anne van Kesteren, David Baron, Henri Sivonen, 呂康豪 (Kang-Hao Lu), Marc O’Morain, Simon Pieter, and Zack Weinberg.</p>
<h2 id="conformance" class="no-ref no-num heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="content">Conformance</span><a class="self-link" href="#conformance" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<h3 id="conventions" class="no-ref heading settled heading" style="page-break-after: avoid; margin-top: 1.2em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">10.4.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Document conventions</span><a class="self-link" href="#conventions" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;MAY&quot;, and &quot;OPTIONAL&quot; in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    All of the text of this specification is normative except sections explicitly marked as non-normative, examples, and notes.<span class="Apple-converted-space">&nbsp;</span><a data-biblio-type="normative" data-link-type="biblio" href="#rfc2119" style="color: inherit; text-decoration: underline; background: transparent;" title="rfc2119">[RFC2119]</a></p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Examples in this specification are introduced with the words &quot;for example&quot; or are set apart from the normative text with<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">class=&quot;example&quot;</code>, like this:</p>
<div class="example" style="page-break-inside: avoid; position: relative; counter-increment: exampleno 1; padding: 0.5em; margin: 1em 0px; clear: both; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(224, 203, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(252, 250, 238);">
    <p style="margin-top: 1em; margin-bottom: 1em;">
        This is an example of an informative example.</p>
</div>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Informative notes begin with the word &quot;Note&quot; and are set apart from the normative text with<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: 0.9em;">class=&quot;note&quot;</code>, like this:</p>
<p class="note" style="margin-top: 1em; margin-bottom: 1em; position: relative; padding: 0.5em; border-left-width: 0.5em; border-left-style: solid; border-color: rgb(82, 224, 82); overflow: auto; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(233, 251, 233);">
    Note, this is an informative note.</p>
<h3 id="conformance-classes" class="no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">10.5.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Conformance classes</span><a class="self-link" href="#conformance-classes" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Conformance to this specification is defined for three conformance classes:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">style sheet</dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/CSS21/conform.html#style-sheet" style="color: inherit; text-decoration: underline; background: transparent;">CSS style sheet</a>.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">renderer</dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/CSS21/conform.html#user-agent" style="color: inherit; text-decoration: underline; background: transparent;">UA</a><span class="Apple-converted-space">&nbsp;</span>that interprets the semantics of a style sheet and renders documents that use them.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">authoring tool</dt>
    <dd style="margin: 0px 0px 1em 2em;">A<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/CSS21/conform.html#user-agent" style="color: inherit; text-decoration: underline; background: transparent;">UA</a><span class="Apple-converted-space">&nbsp;</span>that writes a style sheet.</dd>
</dl>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    A style sheet is conformant to this specification if all of its statements that use syntax defined in this module are valid according to the generic CSS grammar and the individual grammars of each feature defined in this module.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    A renderer is conformant to this specification if, in addition to interpreting the style sheet as defined by the appropriate specifications, it supports all the features defined by this specification by parsing them correctly and rendering the document accordingly. However, the inability of a UA to correctly render a document due to limitations of the device does not make the UA non-conformant. (For example, a UA is not required to render color on a monochrome monitor.)</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    An authoring tool is conformant to this specification if it writes style sheets that are syntactically correct according to the generic CSS grammar and the individual grammars of each feature in this module, and meet all other conformance requirements of style sheets as described in this module.</p>
<h3 id="partial" class="no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">10.6.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Partial implementations</span><a class="self-link" href="#partial" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    So that authors can exploit the forward-compatible parsing rules to assign fallback values, CSS renderers<span class="Apple-converted-space">&nbsp;</span><strong>must</strong><span class="Apple-converted-space">&nbsp;</span>treat as invalid (and<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/CSS21/conform.html#ignore" style="color: inherit; text-decoration: underline; background: transparent;">ignore as appropriate</a>) any at-rules, properties, property values, keywords, and other syntactic constructs for which they have no usable level of support. In particular, user agents<span class="Apple-converted-space">&nbsp;</span><strong>must not</strong><span class="Apple-converted-space">&nbsp;</span>selectively ignore unsupported component values and honor supported values in a single multi-value property declaration: if any value is considered invalid (as unsupported values must be), CSS requires that the entire declaration be ignored.</p>
<h3 id="experimental" class="no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">10.7.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Experimental implementations</span><a class="self-link" href="#experimental" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To avoid clashes with future CSS features, the CSS2.1 specification reserves a<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords" style="color: inherit; text-decoration: underline; background: transparent;">prefixed syntax</a><span class="Apple-converted-space">&nbsp;</span>for proprietary and experimental extensions to CSS.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Prior to a specification reaching the Candidate Recommendation stage in the W3C process, all implementations of a CSS feature are considered experimental. The CSS Working Group recommends that implementations use a vendor-prefixed syntax for such features, including those in W3C Working Drafts. This avoids incompatibilities with future changes in the draft.</p>
<h3 id="testing" class="no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">10.8.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">Non-experimental implementations</span><a class="self-link" href="#testing" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Once a specification reaches the Candidate Recommendation stage, non-experimental implementations are possible, and implementors should release an unprefixed implementation of any CR-level feature they can demonstrate to be correctly implemented according to spec.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    To establish and maintain the interoperability of CSS across implementations, the CSS Working Group requests that non-experimental CSS renderers submit an implementation report (and, if necessary, the testcases used for that implementation report) to the W3C before releasing an unprefixed implementation of any CSS features. Testcases submitted to W3C are subject to review and correction by the CSS Working Group.</p>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    Further information on submitting testcases and implementation reports can be found from on the CSS Working Group’s website at<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/Style/CSS/Test/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/Style/CSS/Test/</a>. Questions should be directed to the<span class="Apple-converted-space">&nbsp;</span><a href="http://lists.w3.org/Archives/Public/public-css-testsuite" style="color: inherit; text-decoration: underline; background: transparent;">public-css-testsuite@w3.org</a><span class="Apple-converted-space">&nbsp;</span>mailing list.</p>
<h3 id="cr-exit-criteria" class="no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="secno">10.9.<span class="Apple-converted-space">&nbsp;</span></span><span class="content">CR exit criteria</span><a class="self-link" href="#cr-exit-criteria" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    For this specification to be advanced to Proposed Recommendation, there must be at least two independent, interoperable implementations of each feature. Each feature may be implemented by a different set of products, there is no requirement that all features be implemented by a single product. For the purposes of this criterion, we define the following terms:</p>
<dl style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">independent</dt>
    <dd style="margin: 0px 0px 1em 2em;">each implementation must be developed by a different party and cannot share, reuse, or derive from code used by another qualifying implementation. Sections of code that have no bearing on the implementation of this specification are exempt from this requirement.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">interoperable</dt>
    <dd style="margin: 0px 0px 1em 2em;">passing the respective test case(s) in the official CSS test suite, or, if the implementation is not a Web browser, an equivalent test. Every relevant test in the test suite should have an equivalent test created if such a user agent (UA) is to be used to claim interoperability. In addition if such a UA is to be used to claim interoperability, then there must one or more additional UAs which can also pass those equivalent tests in the same way for the purpose of interoperability. The equivalent tests must be made publicly available for the purposes of peer review.</dd>
    <dt style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;">implementation</dt>
    <dd style="margin: 0px 0px 1em 2em;">a user agent which:<span class="Apple-converted-space">&nbsp;</span><ol class="inline" style="margin: 0px; padding: 0px; display: inline; counter-reset: list-item 0;">
        <li style="margin: 0px; padding: 0px; position: relative; display: inline; counter-increment: list-item 1;">implements the specification.<span class="Apple-converted-space">&nbsp;</span></li>
        <li style="margin: 0px; padding: 0px; position: relative; display: inline; counter-increment: list-item 1;">is available to the general public. The implementation may be a shipping product or other publicly available version (i.e., beta version, preview release, or &quot;nightly build&quot;). Non-shipping product releases must have implemented the feature(s) for a period of at least one month in order to demonstrate stability.<span class="Apple-converted-space">&nbsp;</span></li>
        <li style="margin: 0px; padding: 0px; position: relative; display: inline; counter-increment: list-item 1;">is not experimental (i.e., a version specifically designed to pass the test suite and is not intended for normal usage going forward).</li>
        </ol>
    </dd>
</dl>
<p style="margin-top: 1em; margin-bottom: 1em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    The specification will remain Candidate Recommendation for at least six months.</p>
<h2 id="references" class="no-num no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="content">References</span><a class="self-link" href="#references" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<h3 id="normative" class="no-num no-ref heading settled heading" style="page-break-after: avoid; margin-top: 1.2em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="content">Normative References</span><a class="self-link" href="#normative" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<div data-fill-with="normative-references" style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dl>
        <dt id="css21" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="CSS21"><a class="self-link" href="#css21" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[CSS21]</dt>
        <dd style="margin: 0px 0px 1em 2em;">Bert Bos; et al.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2011/REC-CSS2-20110607" style="color: inherit; text-decoration: underline; background: transparent;">Cascading Style Sheets Level 2 Revision 1 (CSS&nbsp;2.1) Specification</a>. 7 June 2011. W3C Recommendation. URL:<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2011/REC-CSS2-20110607" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2011/REC-CSS2-20110607</a></dd>
        <dt id="css3cascade" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="CSS3CASCADE"><a class="self-link" href="#css3cascade" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[CSS3CASCADE]</dt>
        <dd style="margin: 0px 0px 1em 2em;">Håkon Wium Lie; Elika J. Etemad; Tab Atkins Jr..<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2013/CR-css-cascade-3-20131003/" style="color: inherit; text-decoration: underline; background: transparent;">CSS Cascading and Inheritance Level 3</a>. 3 October 2013. W3C Candidate Recommendation. (Work in progress.) URL:<a href="http://www.w3.org/TR/2013/CR-css-cascade-3-20131003/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2013/CR-css-cascade-3-20131003/</a></dd>
        <dt id="encoding" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="ENCODING"><a class="self-link" href="#encoding" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[ENCODING]</dt>
        <dd style="margin: 0px 0px 1em 2em;">Anne van Kesteren; Joshua Bell; Addison Phillips.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2014/WD-encoding-20140128/" style="color: inherit; text-decoration: underline; background: transparent;">Encoding</a>. W3C 28 January 2014. First Public Working Draft. (Work in progress.) URL:<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2014/WD-encoding-20140128/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2014/WD-encoding-20140128/</a></dd>
        <dt id="rfc2119" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="RFC2119"><a class="self-link" href="#rfc2119" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[RFC2119]</dt>
        <dd style="margin: 0px 0px 1em 2em;">S. Bradner.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.ietf.org/rfc/rfc2119.txt" style="color: inherit; text-decoration: underline; background: transparent;">Key words for use in RFCs to Indicate Requirement Levels</a>. URL:<span class="Apple-converted-space">&nbsp;</span><a href="http://www.ietf.org/rfc/rfc2119.txt" style="color: inherit; text-decoration: underline; background: transparent;">http://www.ietf.org/rfc/rfc2119.txt</a></dd>
        <dt id="select" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="SELECT"><a class="self-link" href="#select" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[SELECT]</dt>
        <dd style="margin: 0px 0px 1em 2em;">Tantek Çelik; et al.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2011/REC-css3-selectors-20110929/" style="color: inherit; text-decoration: underline; background: transparent;">Selectors Level 3</a>. 29 September 2011. W3C Recommendation. URL:<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2011/REC-css3-selectors-20110929/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2011/REC-css3-selectors-20110929/</a></dd>
        <dt id="unicode" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="UNICODE"><a class="self-link" href="#unicode" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[UNICODE]</dt>
        <dd style="margin: 0px 0px 1em 2em;">The Unicode Consortium.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.unicode.org/standard/versions/enumeratedversions.html" style="color: inherit; text-decoration: underline; background: transparent;">The Unicode Standard</a>. 2013. Defined by: The Unicode Standard, Version 6.3.0, (Mountain View, CA: The Unicode Consortium, 2013. ISBN 978-1-936213-08-5), as updated from time to time by the publication of new versions URL:<span class="Apple-converted-space">&nbsp;</span><a href="http://www.unicode.org/standard/versions/enumeratedversions.html" style="color: inherit; text-decoration: underline; background: transparent;">http://www.unicode.org/standard/versions/enumeratedversions.html</a></dd>
    </dl>
</div>
<h3 id="informative" class="no-num no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 19px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="content">Informative References</span><a class="self-link" href="#informative" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 16px; background: transparent;"></a></h3>
<div data-fill-with="informative-references" style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <dl>
        <dt id="css-variables" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="CSS-VARIABLES"><a class="self-link" href="#css-variables" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[CSS-VARIABLES]</dt>
        <dd style="margin: 0px 0px 1em 2em;">Tab Atkins Jr.; Luke Macpherson; Daniel Glazman.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2013/WD-css-variables-1-20130620/" style="color: inherit; text-decoration: underline; background: transparent;">CSS Custom Properties for Cascading Variables Module Level&nbsp;1</a>. 20 June 2013. W3C Working Draft. (Work in progress.) URL:<a href="http://www.w3.org/TR/2013/WD-css-variables-1-20130620/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2013/WD-css-variables-1-20130620/</a></dd>
        <dt id="css3-animations" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="CSS3-ANIMATIONS"><a class="self-link" href="#css3-animations" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[CSS3-ANIMATIONS]</dt>
        <dd style="margin: 0px 0px 1em 2em;">Dean Jackson; et al.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2013/WD-css3-animations-20130219/" style="color: inherit; text-decoration: underline; background: transparent;">CSS Animations</a>. 19 February 2013. W3C Working Draft. (Work in progress.) URL:<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2013/WD-css3-animations-20130219/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2013/WD-css3-animations-20130219/</a></dd>
        <dt id="css3-conditional" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="CSS3-CONDITIONAL"><a class="self-link" href="#css3-conditional" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[CSS3-CONDITIONAL]</dt>
        <dd style="margin: 0px 0px 1em 2em;">L. David Baron.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2013/CR-css3-conditional-20130404/" style="color: inherit; text-decoration: underline; background: transparent;">CSS Conditional Rules Module Level 3</a>. 4 April 2013. W3C Candidate Recommendation. (Work in progress.) URL:<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2013/CR-css3-conditional-20130404/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2013/CR-css3-conditional-20130404/</a></dd>
        <dt id="cssom" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="CSSOM"><a class="self-link" href="#cssom" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[CSSOM]</dt>
        <dd style="margin: 0px 0px 1em 2em;">Anne van Kesteren.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2011/WD-cssom-20110712/" style="color: inherit; text-decoration: underline; background: transparent;">CSSOM</a>. 12 July 2011. W3C Working Draft. (Work in progress.) URL:<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2011/WD-cssom-20110712/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2011/WD-cssom-20110712/</a></dd>
        <dt id="html" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="HTML"><a class="self-link" href="#html" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[HTML]</dt>
        <dd style="margin: 0px 0px 1em 2em;">Robin Berjon, et al.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2014/CR-html5-20140204/" style="color: inherit; text-decoration: underline; background: transparent;">HTML5</a>. 4 February 2014. W3C Candidate Recommendation. (Work in progress.) URL:<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2014/CR-html5-20140204/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2014/CR-html5-20140204/</a></dd>
        <dt id="mediaq" style="page-break-after: avoid; position: relative; margin-top: 0px; margin-bottom: 0px; font-weight: bold;" title="MEDIAQ"><a class="self-link" href="#mediaq" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; background: transparent;"></a>[MEDIAQ]</dt>
        <dd style="margin: 0px 0px 1em 2em;">Florian Rivoal.<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619/" style="color: inherit; text-decoration: underline; background: transparent;">Media Queries</a>. 19 June 2012. W3C Recommendation. URL:<span class="Apple-converted-space">&nbsp;</span><a href="http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619/" style="color: inherit; text-decoration: underline; background: transparent;">http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619/</a></dd>
    </dl>
</div>
<h2 id="index" class="no-num no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="content">Index</span><a class="self-link" href="#index" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<div data-fill-with="index" style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <ul class="indexlist" style="margin-left: 0px; padding-left: 2em;">
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">A,<span class="Apple-converted-space">&nbsp;</span><a href="#a" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6">6</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">An+B,<span class="Apple-converted-space">&nbsp;</span><a href="#anb0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6">6</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;an+b&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#anb-production" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6.2">6.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">are a valid escape,<span class="Apple-converted-space">&nbsp;</span><a href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.8">4.3.8</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">ASCII case-insensitive,<span class="Apple-converted-space">&nbsp;</span><a href="#ascii-case-insensitive" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.2">5.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;at-keyword-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-at-keyword-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">at-rule,<span class="Apple-converted-space">&nbsp;</span><a href="#at-rule" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5">5</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">B,<span class="Apple-converted-space">&nbsp;</span><a href="#b" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6">6</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;bad-string-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-bad-string-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;bad-url-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-bad-url-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;CDC-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-cdc-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;CDO-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-cdo-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">@charset,<span class="Apple-converted-space">&nbsp;</span><a href="#at-ruledef-charset" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 8.2">8.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">check if three code points would start an identifier,<span class="Apple-converted-space">&nbsp;</span><a href="#check-if-three-code-points-would-start-an-identifier" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.9">4.3.9</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">check if three code points would start a number,<span class="Apple-converted-space">&nbsp;</span><a href="#check-if-three-code-points-would-start-a-number" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.10">4.3.10</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">check if two code points are a valid escape,<span class="Apple-converted-space">&nbsp;</span><a href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.8">4.3.8</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">code point,<span class="Apple-converted-space">&nbsp;</span><a href="#code-point" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;colon-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-colon-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;column-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-column-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;comma-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-comma-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">component value,<span class="Apple-converted-space">&nbsp;</span><a href="#component-value" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5">5</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a component value,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-component-value0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.4.6">5.4.6</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a declaration,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-declaration0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.4.5">5.4.5</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a function,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-function0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.4.8">5.4.8</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a list of declarations,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-list-of-declarations0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.4.4">5.4.4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a list of rules,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-list-of-rules0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.4.1">5.4.1</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a name,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-name0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.11">4.3.11</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume an at-rule,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-an-at-rule0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.4.2">5.4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume an escaped code point,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-an-escaped-code-point0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.7">4.3.7</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume an ident-like token,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-an-ident-like-token0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.3">4.3.3</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a number,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-number0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.12">4.3.12</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a numeric token,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-numeric-token0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.2">4.3.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a qualified rule,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-qualified-rule0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.4.3">5.4.3</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a simple block,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-simple-block0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.4.7">5.4.7</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a string token,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-string-token0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.4">4.3.4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a token,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-token0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.1">4.3.1</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a unicode-range token,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-unicode-range-token0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.6">4.3.6</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume a url token,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-a-url-token0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.5">4.3.5</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume the next input token,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-the-next-input-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.2">5.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">consume the remnants of a bad url,<span class="Apple-converted-space">&nbsp;</span><a href="#consume-the-remnants-of-a-bad-url0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.14">4.3.14</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">convert a string to a number,<span class="Apple-converted-space">&nbsp;</span><a href="#convert-a-string-to-a-number0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.13">4.3.13</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">current input code point,<span class="Apple-converted-space">&nbsp;</span><a href="#current-input-code-point" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">current input token,<span class="Apple-converted-space">&nbsp;</span><a href="#current-input-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.2">5.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;dash-match-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-dash-match-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;dashndashdigit-ident&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-dashndashdigit-ident" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6.2">6.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">declaration,<span class="Apple-converted-space">&nbsp;</span><a href="#declaration" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5">5</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;declaration-list&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-declaration-list" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 7.1">7.1</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">decode,<span class="Apple-converted-space">&nbsp;</span><a href="#decode" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 3.2">3.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;delim-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-delim-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">determine the fallback encoding,<span class="Apple-converted-space">&nbsp;</span><a href="#determine-the-fallback-encoding" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 3.2">3.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">digit,<span class="Apple-converted-space">&nbsp;</span><a href="#digit" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;dimension-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-dimension-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">ending token,<span class="Apple-converted-space">&nbsp;</span><a href="#ending-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.4.7">5.4.7</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">end of the range,<span class="Apple-converted-space">&nbsp;</span><a href="#unicode-range-end" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">environment encoding,<span class="Apple-converted-space">&nbsp;</span><a href="#environment-encoding" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 3.2">3.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">EOF code point,<span class="Apple-converted-space">&nbsp;</span><a href="#eof-code-point" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;EOF-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-eof-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.2">5.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">escaping,<span class="Apple-converted-space">&nbsp;</span><a href="#escaping0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 2.1">2.1</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">function,<span class="Apple-converted-space">&nbsp;</span><a href="#function" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5">5</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;function-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-function-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">get an encoding,<span class="Apple-converted-space">&nbsp;</span><a href="#get-an-encoding" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 3.2">3.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;hash-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-hash-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">hex digit,<span class="Apple-converted-space">&nbsp;</span><a href="#hex-digit" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">identifier,<span class="Apple-converted-space">&nbsp;</span><a href="#identifier" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;ident-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-ident-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;include-match-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-include-match-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;integer&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-integer" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6.2">6.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">letter,<span class="Apple-converted-space">&nbsp;</span><a href="#letter" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">lowercase letter,<span class="Apple-converted-space">&nbsp;</span><a href="#lowercase-letter" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">maximum allowed code point,<span class="Apple-converted-space">&nbsp;</span><a href="#maximum-allowed-code-point" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">name code point,<span class="Apple-converted-space">&nbsp;</span><a href="#name-code-point" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">name-start code point,<span class="Apple-converted-space">&nbsp;</span><a href="#name-start-code-point" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;ndashdigit-dimension&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-ndashdigit-dimension" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6.2">6.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;ndashdigit-ident&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-ndashdigit-ident" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6.2">6.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;ndash-dimension&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-ndash-dimension" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6.2">6.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;n-dimension&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-n-dimension" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6.2">6.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">newline,<span class="Apple-converted-space">&nbsp;</span><a href="#newline" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">next input code point,<span class="Apple-converted-space">&nbsp;</span><a href="#next-input-code-point" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">next input token,<span class="Apple-converted-space">&nbsp;</span><a href="#next-input-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.2">5.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">non-ASCII code point,<span class="Apple-converted-space">&nbsp;</span><a href="#non-ascii-code-point" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">non-printable code point,<span class="Apple-converted-space">&nbsp;</span><a href="#non-printable-code-point" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;number-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-number-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">parse a component value,<span class="Apple-converted-space">&nbsp;</span><a href="#parse-a-component-value0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.3.6">5.3.6</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">parse a CSS stylesheet,<span class="Apple-converted-space">&nbsp;</span><a href="#parse-a-css-stylesheet" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 8">8</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">parse a declaration,<span class="Apple-converted-space">&nbsp;</span><a href="#parse-a-declaration0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.3.4">5.3.4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">parse a list of component values,<span class="Apple-converted-space">&nbsp;</span><a href="#parse-a-list-of-component-values0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.3.7">5.3.7</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">parse a list of declarations,<span class="Apple-converted-space">&nbsp;</span><a href="#parse-a-list-of-declarations0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.3.5">5.3.5</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">parse a list of rules,<span class="Apple-converted-space">&nbsp;</span><a href="#parse-a-list-of-rules0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.3.2">5.3.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">parse a rule,<span class="Apple-converted-space">&nbsp;</span><a href="#parse-a-rule0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.3.3">5.3.3</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">parse a stylesheet,<span class="Apple-converted-space">&nbsp;</span><a href="#parse-a-stylesheet0" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.3.1">5.3.1</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">parse error,<span class="Apple-converted-space">&nbsp;</span><a href="#parse-error" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 3">3</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;percentage-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-percentage-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;prefix-match-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-prefix-match-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">preserved tokens,<span class="Apple-converted-space">&nbsp;</span><a href="#preserved-tokens" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5">5</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">qualified rule,<span class="Apple-converted-space">&nbsp;</span><a href="#qualified-rule" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5">5</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">reconsume the current input code point,<span class="Apple-converted-space">&nbsp;</span><a href="#reconsume-the-current-input-code-point" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">reconsume the current input token,<span class="Apple-converted-space">&nbsp;</span><a href="#reconsume-the-current-input-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.2">5.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;rule-list&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-rule-list" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 7.1">7.1</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;semicolon-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-semicolon-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;signed-integer&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signed-integer" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6.2">6.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;signless-integer&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-signless-integer" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 6.2">6.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">simple block,<span class="Apple-converted-space">&nbsp;</span><a href="#simple-block" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5">5</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">start of the range,<span class="Apple-converted-space">&nbsp;</span><a href="#unicode-range-start" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">starts with an identifier,<span class="Apple-converted-space">&nbsp;</span><a href="#check-if-three-code-points-would-start-an-identifier" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.9">4.3.9</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">starts with a number,<span class="Apple-converted-space">&nbsp;</span><a href="#check-if-three-code-points-would-start-a-number" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.10">4.3.10</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">starts with a valid escape,<span class="Apple-converted-space">&nbsp;</span><a href="#check-if-two-code-points-are-a-valid-escape" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.8">4.3.8</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">start with an identifier,<span class="Apple-converted-space">&nbsp;</span><a href="#check-if-three-code-points-would-start-an-identifier" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.9">4.3.9</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">start with a number,<span class="Apple-converted-space">&nbsp;</span><a href="#check-if-three-code-points-would-start-a-number" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.10">4.3.10</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;string-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-string-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">style rule,<span class="Apple-converted-space">&nbsp;</span><a href="#style-rule" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 8.1">8.1</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;stylesheet&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-stylesheet" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 7.1">7.1</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;substring-match-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-substring-match-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;suffix-match-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-suffix-match-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">surrogate code point,<span class="Apple-converted-space">&nbsp;</span><a href="#surrogate-code-point" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;{-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-curly" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;)-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-paren" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;}-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-curly" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;]-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-close-square" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;(-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-paren" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;[-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#tokendef-open-square" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">top-level flag,<span class="Apple-converted-space">&nbsp;</span><a href="#top-level-flag" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 5.4.1">5.4.1</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;unicode-range-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-unicode-range-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">uppercase letter,<span class="Apple-converted-space">&nbsp;</span><a href="#uppercase-letter" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;url-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-url-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">whitespace,<span class="Apple-converted-space">&nbsp;</span><a href="#whitespace" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.2">4.2</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">&lt;whitespace-token&gt;,<span class="Apple-converted-space">&nbsp;</span><a href="#typedef-whitespace-token" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4">4</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">would start an identifier,<span class="Apple-converted-space">&nbsp;</span><a href="#check-if-three-code-points-would-start-an-identifier" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.9">4.3.9</a></li>
        <li style="margin: 0.25em 2em 0.5em 0px; padding-left: 0px; position: relative; list-style: none;">would start a number,<span class="Apple-converted-space">&nbsp;</span><a href="#check-if-three-code-points-would-start-a-number" style="color: inherit; text-decoration: underline; font-weight: bold; background: transparent;" title="section 4.3.10">4.3.10</a></li>
    </ul>
</div>
<h2 id="property-index" class="no-num no-ref heading settled heading" style="page-break-after: avoid; margin-top: 3em; text-align: left; color: rgb(0, 90, 156); font-style: normal; font-variant: normal; font-weight: normal; font-size: 22px; line-height: normal; font-family: sans-serif; position: relative; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background: rgb(255, 255, 255);"><span class="content">Property index</span><a class="self-link" href="#property-index" style="color: inherit; text-decoration: underline; position: absolute; top: 0px; left: -2.5em; width: 2em; height: 2em; text-align: center; border: none; transition: opacity 0.2s; -webkit-transition: opacity 0.2s; opacity: 0.5; font-size: 19px; background: transparent;"></a></h2>
<div data-fill-with="property-index" style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <p style="margin-top: 1em; margin-bottom: 1em;">
        No properties defined.</p>
</div>
